From ab24e18c7a32ee1637be19f239e9dd9d7c7f6534 Mon Sep 17 00:00:00 2001
From: Denis Vlasenko <vda.linux@googlemail.com>
Date: Thu, 30 Nov 2006 16:41:15 +0000
Subject: passwd: rework: * do not make backup copy by copying (just retain old
 file) * correctly fall back to /etc/passwd if user is not in shadow * fix bug
 with overlong passwd entries * be permissive on some kinds of failures *
 reduce stack usage * code size: -500 bytes

---
 libbb/bb_askpass.c         |  2 +-
 libbb/get_line_from_file.c | 14 +++++++-------
 libbb/obscure.c            | 10 +++++-----
 3 files changed, 13 insertions(+), 13 deletions(-)

(limited to 'libbb')

diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c
index cf384e52b..097a0a290 100644
--- a/libbb/bb_askpass.c
+++ b/libbb/bb_askpass.c
@@ -60,7 +60,7 @@ char *bb_askpass(int timeout, const char * prompt)
 		   (read did not overwrite it) */
 		do {
 			if (passwd[i] == '\r' || passwd[i] == '\n')
-				passwd[i] = 0;
+				passwd[i] = '\0';
 		} while (passwd[i++]);
 	}
 
diff --git a/libbb/get_line_from_file.c b/libbb/get_line_from_file.c
index 969d808cf..b424d59e9 100644
--- a/libbb/get_line_from_file.c
+++ b/libbb/get_line_from_file.c
@@ -9,11 +9,9 @@
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "libbb.h"
 
-/* get_line_from_file() - This function reads an entire line from a text file,
+/* This function reads an entire line from a text file,
  * up to a newline or NUL byte.  It returns a malloc'ed char * which must be
  * stored and free'ed  by the caller.  If end is null '\n' isn't considered
  * end of line.  If end isn't null, length of the chunk read is stored in it. */
@@ -37,10 +35,12 @@ char *bb_get_chunk_from_file(FILE * file, int *end)
 	if (end)
 		*end = idx;
 	if (linebuf) {
-		if (ferror(file)) {
-			free(linebuf);
-			return NULL;
-		}
+		// huh, is fgets discards prior data on error like this?
+		// I don't think so....
+		//if (ferror(file)) {
+		//	free(linebuf);
+		//	return NULL;
+		//}
 		linebuf = xrealloc(linebuf, idx+1);
 		linebuf[idx] = 0;
 	}
diff --git a/libbb/obscure.c b/libbb/obscure.c
index 7d839d624..2599095df 100644
--- a/libbb/obscure.c
+++ b/libbb/obscure.c
@@ -157,14 +157,14 @@ static const char *obscure_msg(const char *old_p, const char *new_p, const struc
 	return NULL;
 }
 
-int obscure(const char *old, const char *newval, const struct passwd *pwdp)
+int obscure(const char *old, const char *newval, const struct passwd *pw)
 {
 	const char *msg;
 
-	if ((msg = obscure_msg(old, newval, pwdp))) {
-		printf("Bad password: %s.\n", msg);
-		/* If user is root warn only */
-		return getuid() ? 1 : 0;
+	msg = obscure_msg(old, newval, pw);
+	if (msg) {
+		printf("Bad password: %s\n", msg);
+		return 1;
 	}
 	return 0;
 }
-- 
cgit v1.2.3