svn commit: branches/busybox_1_5_stable: editors miscutils networking procps she etc...

vda at busybox.net vda at busybox.net
Sun May 20 17:01:17 UTC 2007


Author: vda
Date: 2007-05-20 10:01:14 -0700 (Sun, 20 May 2007)
New Revision: 18655

Log:
applied post-1.5.0 fixes


Modified:
   branches/busybox_1_5_stable/Makefile
   branches/busybox_1_5_stable/editors/sed.c
   branches/busybox_1_5_stable/miscutils/hdparm.c
   branches/busybox_1_5_stable/networking/ifupdown.c
   branches/busybox_1_5_stable/procps/ps.c
   branches/busybox_1_5_stable/shell/hush.c


Changeset:
Modified: branches/busybox_1_5_stable/Makefile
===================================================================
--- branches/busybox_1_5_stable/Makefile	2007-05-20 13:08:31 UTC (rev 18654)
+++ branches/busybox_1_5_stable/Makefile	2007-05-20 17:01:14 UTC (rev 18655)
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 5
-SUBLEVEL = 0
+SUBLEVEL = 1
 EXTRAVERSION =
 NAME = Unnamed
 

Modified: branches/busybox_1_5_stable/editors/sed.c
===================================================================
--- branches/busybox_1_5_stable/editors/sed.c	2007-05-20 13:08:31 UTC (rev 18654)
+++ branches/busybox_1_5_stable/editors/sed.c	2007-05-20 17:01:14 UTC (rev 18655)
@@ -481,7 +481,7 @@
 	if (bbg.add_cmd_line) {
 		char *tp = xasprintf("%s\n%s", bbg.add_cmd_line, cmdstr);
 		free(bbg.add_cmd_line);
-		bbg.add_cmd_line = tp;
+		cmdstr = bbg.add_cmd_line = tp;
 	}
 
 	/* If this line ends with backslash, request next line. */

Modified: branches/busybox_1_5_stable/miscutils/hdparm.c
===================================================================
--- branches/busybox_1_5_stable/miscutils/hdparm.c	2007-05-20 13:08:31 UTC (rev 18654)
+++ branches/busybox_1_5_stable/miscutils/hdparm.c	2007-05-20 17:01:14 UTC (rev 18655)
@@ -1569,9 +1569,9 @@
 	if (set_mult) {
 		print_flag(get_mult, "multcount", mult);
 #ifdef HDIO_DRIVE_CMD
-		bb_ioctl(fd, HDIO_SET_MULTCOUNT, &mult, "HDIO_SET_MULTCOUNT");
+		bb_ioctl(fd, HDIO_SET_MULTCOUNT, (void *)mult, "HDIO_SET_MULTCOUNT");
 #else
-		force_operation |= (!bb_ioctl(fd, HDIO_SET_MULTCOUNT, &mult, "HDIO_SET_MULTCOUNT"));
+		force_operation |= (!bb_ioctl(fd, HDIO_SET_MULTCOUNT, (void *)mult, "HDIO_SET_MULTCOUNT"));
 #endif
 	}
 	if (set_readonly) {

Modified: branches/busybox_1_5_stable/networking/ifupdown.c
===================================================================
--- branches/busybox_1_5_stable/networking/ifupdown.c	2007-05-20 13:08:31 UTC (rev 18654)
+++ branches/busybox_1_5_stable/networking/ifupdown.c	2007-05-20 17:01:14 UTC (rev 18655)
@@ -1083,15 +1083,32 @@
 	return NULL;
 }
 
+/* read the previous state from the state file */
+static llist_t *read_iface_state(void) {
+	llist_t *state_list = NULL;
+	FILE *state_fp;
+	state_fp = fopen("/var/run/ifstate", "r");
+	if (state_fp) {
+		char *start, *end_ptr;
+		while ((start = xmalloc_fgets(state_fp)) != NULL) {
+			/* We should only need to check for a single character */
+			end_ptr = start + strcspn(start, " \t\n");
+			*end_ptr = '\0';
+			llist_add_to(&state_list, start);
+		}
+		fclose(state_fp);
+	}
+	return state_list;
+}
+
+
 int ifupdown_main(int argc, char **argv);
 int ifupdown_main(int argc, char **argv)
 {
 	int (*cmds)(struct interface_defn_t *) = NULL;
 	struct interfaces_file_t *defn;
-	llist_t *state_list = NULL;
 	llist_t *target_list = NULL;
 	const char *interfaces = "/etc/network/interfaces";
-	FILE *state_fp;
 	bool any_failures = 0;
 
 	cmds = iface_down;
@@ -1118,32 +1135,9 @@
 	startup_PATH = getenv("PATH");
 	if (!startup_PATH) startup_PATH = "";
 
-	/* Read the previous state from the state file */
-	state_fp = fopen("/var/run/ifstate", "r");
-	if (state_fp) {
-		char *start, *end_ptr;
-		while ((start = xmalloc_fgets(state_fp)) != NULL) {
-			/* We should only need to check for a single character */
-			end_ptr = start + strcspn(start, " \t\n");
-			*end_ptr = '\0';
-			llist_add_to(&state_list, start);
-		}
-		fclose(state_fp);
-	}
-
 	/* Create a list of interfaces to work on */
 	if (DO_ALL) {
-		if (cmds == iface_up) {
-			target_list = defn->autointerfaces;
-		} else {
-			/* iface_down */
-			const llist_t *list = state_list;
-			while (list) {
-				llist_add_to_end(&target_list, xstrdup(list->data));
-				list = list->link;
-			}
-			target_list = defn->autointerfaces;
-		}
+		target_list = defn->autointerfaces;
 	} else {
 		llist_add_to_end(&target_list, argv[optind]);
 	}
@@ -1170,6 +1164,7 @@
 		}
 
 		if (!FORCE) {
+			llist_t *state_list = read_iface_state();
 			const llist_t *iface_state = find_iface_state(state_list, iface);
 
 			if (cmds == iface_up) {
@@ -1185,6 +1180,7 @@
 					continue;
 				}
 			}
+			llist_free(state_list, free);
 		}
 
 #if ENABLE_FEATURE_IFUPDOWN_MAPPING
@@ -1239,6 +1235,8 @@
 			bb_error_msg("ignoring unknown interface %s", liface);
 			any_failures = 1;
 		} else {
+			/* update the state file */
+			llist_t *state_list = read_iface_state();
 			llist_t *iface_state = find_iface_state(state_list, iface);
 
 			if (cmds == iface_up) {
@@ -1254,19 +1252,21 @@
 				llist_unlink(&state_list, iface_state);
 				free(llist_pop(&iface_state));
 			}
-		}
-	}
 
-	/* Actually write the new state */
-	if (!NO_ACT) {
-		state_fp = xfopen("/var/run/ifstate", "w");
-		while (state_list) {
-			if (state_list->data) {
-				fprintf(state_fp, "%s\n", state_list->data);
+			/* Actually write the new state */
+			if (!NO_ACT) {
+				FILE *state_fp = xfopen("/var/run/ifstate", "w");
+				llist_t *state = state_list;
+				while (state) {
+					if (state->data) {
+						fprintf(state_fp, "%s\n", state->data);
+					}
+					state = state->link;
+				}
+				fclose(state_fp);
 			}
-			state_list = state_list->link;
+			llist_free(state_list, free);
 		}
-		fclose(state_fp);
 	}
 
 	return any_failures;

Modified: branches/busybox_1_5_stable/procps/ps.c
===================================================================
--- branches/busybox_1_5_stable/procps/ps.c	2007-05-20 13:08:31 UTC (rev 18654)
+++ branches/busybox_1_5_stable/procps/ps.c	2007-05-20 17:01:14 UTC (rev 18655)
@@ -262,7 +262,9 @@
 		parse_o(default_o);
 	post_process();
 
-	terminal_width = INT_MAX;
+	/* Was INT_MAX, but some libc's go belly up with printf("%.*s")
+	 * and such large widths */
+	terminal_width = 30000;
 	if (isatty(1)) {
 		get_terminal_width_height(1, &terminal_width, NULL);
 		terminal_width--;

Modified: branches/busybox_1_5_stable/shell/hush.c
===================================================================
--- branches/busybox_1_5_stable/shell/hush.c	2007-05-20 13:08:31 UTC (rev 18654)
+++ branches/busybox_1_5_stable/shell/hush.c	2007-05-20 17:01:14 UTC (rev 18655)
@@ -1840,7 +1840,7 @@
 			result = -1;
 		} else {
 			cur->name = strdup(name);
-			if (cur->name) {
+			if (!cur->name) {
 				free(cur);
 				result = -1;
 			} else {




More information about the busybox-cvs mailing list