svn commit: trunk/busybox: archival libbb miscutils

vda at busybox.net vda at busybox.net
Sat Sep 23 12:22:16 UTC 2006


Author: vda
Date: 2006-09-23 05:22:11 -0700 (Sat, 23 Sep 2006)
New Revision: 16196

Log:
bb_askpass: shorten static password buffer. 256 is way too large.
simplify code a bit.



Modified:
   trunk/busybox/archival/tar.c
   trunk/busybox/libbb/bb_askpass.c
   trunk/busybox/libbb/getopt_ulflags.c
   trunk/busybox/miscutils/hdparm.c


Changeset:
Modified: trunk/busybox/archival/tar.c
===================================================================
--- trunk/busybox/archival/tar.c	2006-09-23 04:10:42 UTC (rev 16195)
+++ trunk/busybox/archival/tar.c	2006-09-23 12:22:11 UTC (rev 16196)
@@ -715,7 +715,7 @@
 		if ((tar_handle->action_header == header_list) ||
 			(tar_handle->action_header == header_verbose_list))
 		{
-				tar_handle->action_header = header_verbose_list;
+			tar_handle->action_header = header_verbose_list;
 		} else tar_handle->action_header = header_list;
 	}
 	if((opt & CTX_EXTRACT) && tar_handle->action_data != data_extract_to_stdout)

Modified: trunk/busybox/libbb/bb_askpass.c
===================================================================
--- trunk/busybox/libbb/bb_askpass.c	2006-09-23 04:10:42 UTC (rev 16195)
+++ trunk/busybox/libbb/bb_askpass.c	2006-09-23 12:22:11 UTC (rev 16196)
@@ -17,9 +17,7 @@
 #include <sys/ioctl.h>
 
 #include "libbb.h"
-#define PWD_BUFFER_SIZE 256
 
-
 /* do nothing signal handler */
 static void askpass_timeout(int ATTRIBUTE_UNUSED ignore)
 {
@@ -27,18 +25,17 @@
 
 char *bb_askpass(int timeout, const char * prompt)
 {
+	static char passwd[64];
+
 	char *ret;
-	int i, size;
+	int i;
 	struct sigaction sa;
 	struct termios old, new;
-	static char passwd[PWD_BUFFER_SIZE];
 
 	tcgetattr(STDIN_FILENO, &old);
 	tcflush(STDIN_FILENO, TCIFLUSH);
 
-	size = sizeof(passwd);
-	ret = passwd;
-	memset(passwd, 0, size);
+	memset(passwd, 0, sizeof(passwd));
 
 	fputs(prompt, stdout);
 	fflush(stdout);
@@ -55,15 +52,16 @@
 		alarm(timeout);
 	}
 
-	if (read(STDIN_FILENO, passwd, size-1) <= 0) {
-		ret = NULL;
-	} else {
-		for(i = 0; i < size && passwd[i]; i++) {
-			if (passwd[i]== '\r' || passwd[i] == '\n') {
-				passwd[i]= 0;
-				break;
-			}
-		}
+	ret = NULL;
+	if (read(STDIN_FILENO, passwd, sizeof(passwd)-1) > 0) {
+		ret = passwd;
+		i = 0;
+		/* Last byte is guaranteed to be 0
+		   (read did not overwrite it) */
+		do {
+			if (passwd[i] == '\r' || passwd[i] == '\n')
+				passwd[i] = 0;
+		} while (passwd[i++]);
 	}
 
 	if (timeout) {
@@ -71,8 +69,7 @@
 	}
 
 	tcsetattr(STDIN_FILENO, TCSANOW, &old);
-	fputs("\n", stdout);
+	puts("");
 	fflush(stdout);
 	return ret;
 }
-

Modified: trunk/busybox/libbb/getopt_ulflags.c
===================================================================
--- trunk/busybox/libbb/getopt_ulflags.c	2006-09-23 04:10:42 UTC (rev 16195)
+++ trunk/busybox/libbb/getopt_ulflags.c	2006-09-23 12:22:11 UTC (rev 16196)
@@ -104,7 +104,6 @@
 	if they are not specifed on the command line.  For example:
 
 	bb_opt_complementally = "abc";
-
 	flags = bb_getopt_ulflags(argc, argv, "abcd")
 
 	If getopt() finds "-a" on the command line, then
@@ -120,7 +119,6 @@
 	int w_counter = 0;
 	bb_opt_complementally = "ww";
 	bb_getopt_ulflags(argc, argv, "w", &w_counter);
-
 	if(w_counter)
 		width = (w_counter == 1) ? 132 : INT_MAX;
 	else
@@ -128,6 +126,7 @@
 
 	w_counter is a pointer to an integer. It has to be passed to
 	bb_getopt_ulflags() after all other option argument sinks.
+
 	For example: accept multiple -v to indicate the level of verbosity
 	and for each -b optarg, add optarg to my_b. Finally, if b is given,
 	turn off c and vice versa:
@@ -136,8 +135,8 @@
 	int verbose_level = 0;
 	bb_opt_complementally = "vv:b::b-c:c-b";
 	f = bb_getopt_ulflags(argc, argv, "vb:c", &my_b, &verbose_level);
-	if((f & 2))     // -c after -b unsets -b flag
-		while(my_b) { dosomething_with(my_b->data) ; my_b = my_b->link; }
+	if(f & 2)       // -c after -b unsets -b flag
+		while(my_b) { dosomething_with(my_b->data); my_b = my_b->link; }
 	if(my_b)        // but llist is stored if -b is specified
 		free_llist(my_b);
 	if(verbose_level) bb_printf("verbose level is %d\n", verbose_level);
@@ -237,7 +236,7 @@
 
  "--"   A double dash at the beginning of bb_opt_complementally means the
 	argv[1] string should always be treated as options, even if it isn't
-	prefixed with a "-".  This is to support the special syntax in applets
+	prefixed with a "-".  This is useful for special syntax in applets
 	such as "ar" and "tar":
 	tar xvf foo.tar
 

Modified: trunk/busybox/miscutils/hdparm.c
===================================================================
--- trunk/busybox/miscutils/hdparm.c	2006-09-23 04:10:42 UTC (rev 16195)
+++ trunk/busybox/miscutils/hdparm.c	2006-09-23 12:22:11 UTC (rev 16196)
@@ -2058,13 +2058,13 @@
 /* busybox specific stuff */
 static void parse_opts(unsigned long *get, unsigned long *set, unsigned long *value, int min, int max)
 {
-		if (get) {
-			*get = 1;
-		}
-		if (optarg) {
-			*set = 1;
-			*value = bb_xgetlarg(optarg, 10, min, max);
-		}
+	if (get) {
+		*get = 1;
+	}
+	if (optarg) {
+		*set = 1;
+		*value = bb_xgetlarg(optarg, 10, min, max);
+	}
 }
 
 static void parse_xfermode(int flag, unsigned long *get, unsigned long *set, int *value)




More information about the busybox-cvs mailing list