diff -ru base-passwd-3.1.7/update-passwd.c base-passwd-3.1.7-works/update-passwd.c --- base-passwd-3.1.7/update-passwd.c Thu Jan 13 19:20:31 2000 +++ base-passwd-3.1.7-works/update-passwd.c Fri Sep 15 22:01:05 2000 @@ -800,12 +800,12 @@ * new copy, since it's useless anyway. */ int put_file_in_place(const char* source, const char* target) { - char uf[PATH_MAX]; + char *uf; if (opt_verbose) printf("Replacing \"%s\" with \"%s\"\n", target, source); - snprintf(uf, PATH_MAX, "%s%s", target, UNLINK_EXTENSION); + asprintf(&uf, "%s%s", target, UNLINK_EXTENSION); umask(0077); @@ -831,7 +831,7 @@ /* Rewrite the account-database if we made any changes */ int commit_files() { - char wf[PATH_MAX]; + char *wf; if (!flag_dirty) { if (opt_verbose) @@ -846,21 +846,21 @@ printf("%d changes have been made, rewriting files\n", flag_dirty); - snprintf(wf, PATH_MAX, "%s%s", sys_passwd, WRITE_EXTENSION); + asprintf(&wf, "%s%s", sys_passwd, WRITE_EXTENSION); if (!write_passwd(system_accounts, wf)) return 0; if (!put_file_in_place(wf, sys_passwd)) return 0; if (system_shadow!=NULL) { - snprintf(wf, PATH_MAX, "%s%s", sys_shadow, WRITE_EXTENSION); + asprintf(&wf, "%s%s", sys_shadow, WRITE_EXTENSION); if (!write_shadow(system_shadow, wf)) return 0; if (!put_file_in_place(wf, sys_shadow)) return 0; } - snprintf(wf, PATH_MAX, "%s%s", sys_group, WRITE_EXTENSION); + asprintf(&wf, "%s%s", sys_group, WRITE_EXTENSION); if (!write_group(system_groups, wf)) return 0; if (!put_file_in_place(wf, sys_group))