Browse Source

fix format strings for uid/gid values in putpwent/putgrent

commit 648c3b4e18b2ce2b6af7d44783e42ca267ea49f5 omitted this change,
which is needed to be able to use uid/gid values greater than INT_MAX
with these interfaces. it fixes alpine linux bug #10460.
Rich Felker 5 years ago
parent
commit
9fd98a6354
2 changed files with 2 additions and 2 deletions
  1. 1 1
      src/passwd/putgrent.c
  2. 1 1
      src/passwd/putpwent.c

+ 1 - 1
src/passwd/putgrent.c

@@ -7,7 +7,7 @@ int putgrent(const struct group *gr, FILE *f)
 	int r;
 	size_t i;
 	flockfile(f);
-	if ((r = fprintf(f, "%s:%s:%d:", gr->gr_name, gr->gr_passwd, gr->gr_gid))<0) goto done;
+	if ((r = fprintf(f, "%s:%s:%u:", gr->gr_name, gr->gr_passwd, gr->gr_gid))<0) goto done;
 	if (gr->gr_mem) for (i=0; gr->gr_mem[i]; i++)
 		if ((r = fprintf(f, "%s%s", i?",":"", gr->gr_mem[i]))<0) goto done;
 	r = fputc('\n', f);

+ 1 - 1
src/passwd/putpwent.c

@@ -4,7 +4,7 @@
 
 int putpwent(const struct passwd *pw, FILE *f)
 {
-	return fprintf(f, "%s:%s:%d:%d:%s:%s:%s\n",
+	return fprintf(f, "%s:%s:%u:%u:%s:%s:%s\n",
 		pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid,
 		pw->pw_gecos, pw->pw_dir, pw->pw_shell)<0 ? -1 : 0;
 }