From 769532857560df0cac747a85cdaa31b764cca6c4 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 24 Mar 2007 16:06:46 +0000 Subject: [PATCH] adduser: don't bomb out if shadow password file doesn't exist (from Tito ) --- loginutils/adduser.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/loginutils/adduser.c b/loginutils/adduser.c index 4c03790d8..124e17730 100644 --- a/loginutils/adduser.c +++ b/loginutils/adduser.c @@ -109,19 +109,23 @@ static int adduser(struct passwd *p) if (putpwent(p, file) == -1) { bb_perror_nomsg_and_die(); } - fclose(file); + if (ENABLE_FEATURE_CLEAN_UP) + fclose(file); #if ENABLE_FEATURE_SHADOWPASSWDS /* add to shadow if necessary */ - file = xfopen(bb_path_shadow_file, "a"); - fseek(file, 0, SEEK_END); - fprintf(file, "%s:!:%ld:%d:%d:%d:::\n", - p->pw_name, /* username */ - time(NULL) / 86400, /* sp->sp_lstchg */ - 0, /* sp->sp_min */ - 99999, /* sp->sp_max */ - 7); /* sp->sp_warn */ - fclose(file); + file = fopen_or_warn(bb_path_shadow_file, "a"); + if (file) { + fseek(file, 0, SEEK_END); + fprintf(file, "%s:!:%ld:%d:%d:%d:::\n", + p->pw_name, /* username */ + time(NULL) / 86400, /* sp->sp_lstchg */ + 0, /* sp->sp_min */ + 99999, /* sp->sp_max */ + 7); /* sp->sp_warn */ + if (ENABLE_FEATURE_CLEAN_UP) + fclose(file); + } #endif /* add to group */