svn commit: branches/busybox_1_4_stable: applets archival libbb networking/libip etc...

vda at busybox.net vda at busybox.net
Wed Jan 24 22:03:47 UTC 2007


Author: vda
Date: 2007-01-24 14:03:46 -0800 (Wed, 24 Jan 2007)
New Revision: 17509

Log:
accumulated post-1.4.0 fixes


Modified:
   branches/busybox_1_4_stable/Makefile
   branches/busybox_1_4_stable/applets/applets.c
   branches/busybox_1_4_stable/archival/tar.c
   branches/busybox_1_4_stable/libbb/vdprintf.c
   branches/busybox_1_4_stable/libbb/xfuncs.c
   branches/busybox_1_4_stable/libbb/xreadlink.c
   branches/busybox_1_4_stable/networking/libiproute/libnetlink.h
   branches/busybox_1_4_stable/sysklogd/syslogd.c


Changeset:
Modified: branches/busybox_1_4_stable/Makefile
===================================================================
--- branches/busybox_1_4_stable/Makefile	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/Makefile	2007-01-24 22:03:46 UTC (rev 17509)
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 4
-SUBLEVEL = 0
+SUBLEVEL = 1
 EXTRAVERSION =
 NAME = Unnamed
 

Modified: branches/busybox_1_4_stable/applets/applets.c
===================================================================
--- branches/busybox_1_4_stable/applets/applets.c	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/applets/applets.c	2007-01-24 22:03:46 UTC (rev 17509)
@@ -320,7 +320,7 @@
 }
 
 #else
-#define parse_config_file()
+#define parse_config_file() ((void)0)
 #endif /* CONFIG_FEATURE_SUID_CONFIG */
 
 #ifdef CONFIG_FEATURE_SUID
@@ -340,20 +340,26 @@
 		if (sct) {
 			mode_t m = sct->m_mode;
 
-			if (sct->m_uid == ruid)       /* same uid */
+			if (sct->m_uid == ruid)
+				/* same uid */
 				m >>= 6;
-			else if ((sct->m_gid == rgid) || ingroup(ruid, sct->m_gid))  /* same group / in group */
+			else if ((sct->m_gid == rgid) || ingroup(ruid, sct->m_gid))
+				/* same group / in group */
 				m >>= 3;
 
 			if (!(m & S_IXOTH))           /* is x bit not set ? */
 				bb_error_msg_and_die("you have no permission to run this applet!");
 
-			if ((sct->m_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {     /* *both* have to be set for sgid */
-				xsetgid(sct->m_gid);
-			} else xsetgid(rgid);                /* no sgid -> drop */
-
-			if (sct->m_mode & S_ISUID) xsetuid(sct->m_uid);
-			else xsetuid(ruid);                  /* no suid -> drop */
+			if (sct->m_gid != 0) {
+				/* _both_ have to be set for sgid */
+				if ((sct->m_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {
+					xsetgid(sct->m_gid);
+				} else xsetgid(rgid); /* no sgid -> drop */
+			}
+			if (sct->m_uid != 0) {
+				if (sct->m_mode & S_ISUID) xsetuid(sct->m_uid);
+				else xsetuid(ruid); /* no suid -> drop */
+			}
 		} else {
 			/* default: drop all privileges */
 			xsetgid(rgid);

Modified: branches/busybox_1_4_stable/archival/tar.c
===================================================================
--- branches/busybox_1_4_stable/archival/tar.c	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/archival/tar.c	2007-01-24 22:03:46 UTC (rev 17509)
@@ -23,10 +23,10 @@
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
+#include <fnmatch.h>
+#include <getopt.h>
 #include "busybox.h"
 #include "unarchive.h"
-#include <fnmatch.h>
-#include <getopt.h>
 
 #if ENABLE_FEATURE_TAR_CREATE
 
@@ -37,6 +37,7 @@
 /* POSIX tar Header Block, from POSIX 1003.1-1990  */
 #define NAME_SIZE      100
 #define NAME_SIZE_STR "100"
+typedef struct TarHeader TarHeader;
 struct TarHeader {		  /* byte offset */
 	char name[NAME_SIZE];     /*   0-99 */
 	char mode[8];             /* 100-107 */
@@ -56,7 +57,6 @@
 	char prefix[155];         /* 345-499 */
 	char padding[12];         /* 500-512 (pad to exactly the TAR_BLOCK_SIZE) */
 };
-typedef struct TarHeader TarHeader;
 
 /*
 ** writeTarFile(), writeFileToTarball(), and writeTarHeader() are
@@ -73,6 +73,7 @@
 };
 
 /* Some info to be carried along when creating a new tarball */
+typedef struct TarBallInfo TarBallInfo;
 struct TarBallInfo {
 	int tarFd;				/* Open-for-write file descriptor
 							   for the tarball */
@@ -85,7 +86,6 @@
 	HardLinkInfo *hlInfoHead;	/* Hard Link Tracking Information */
 	HardLinkInfo *hlInfo;	/* Hard Link Info for the current file */
 };
-typedef struct TarBallInfo TarBallInfo;
 
 /* A nice enum with all the possible tar file content types */
 enum TarFileType {
@@ -348,7 +348,7 @@
 	return TRUE;
 }
 
-# if ENABLE_FEATURE_TAR_FROM
+#if ENABLE_FEATURE_TAR_FROM
 static int exclude_file(const llist_t *excluded_files, const char *file)
 {
 	while (excluded_files) {
@@ -371,12 +371,12 @@
 
 	return 0;
 }
-# else
+#else
 #define exclude_file(excluded_files, file) 0
-# endif
+#endif
 
 static int writeFileToTarball(const char *fileName, struct stat *statbuf,
-			void *userData, int depth)
+			void *userData, int depth ATTRIBUTE_UNUSED)
 {
 	struct TarBallInfo *tbInfo = (struct TarBallInfo *) userData;
 	const char *header_name;
@@ -509,14 +509,14 @@
 		if (pipe(gzipDataPipe) < 0 || pipe(gzipStatusPipe) < 0)
 			bb_perror_msg_and_die("pipe");
 
-		signal(SIGPIPE, SIG_IGN);	/* we only want EPIPE on errors */
+		signal(SIGPIPE, SIG_IGN); /* we only want EPIPE on errors */
 
-# if __GNUC__
+#if defined(__GNUC__) && __GNUC__
 		/* Avoid vfork clobbering */
 		(void) &include;
 		(void) &errorFlag;
 		(void) &zip_exec;
-# endif
+#endif
 
 		gzipPid = vfork();
 
@@ -600,7 +600,7 @@
 int writeTarFile(const int tar_fd, const int verboseFlag,
 	const unsigned long dereferenceFlag, const llist_t *include,
 	const llist_t *exclude, const int gzip);
-#endif	/* tar_create */
+#endif /* FEATURE_TAR_CREATE */
 
 #if ENABLE_FEATURE_TAR_FROM
 static llist_t *append_file_list_to_list(llist_t *list)
@@ -628,7 +628,7 @@
 	return newlist;
 }
 #else
-#define append_file_list_to_list(x)	0
+#define append_file_list_to_list(x) 0
 #endif
 
 #if ENABLE_FEATURE_TAR_COMPRESS
@@ -653,7 +653,7 @@
 	return EXIT_FAILURE;
 }
 #else
-#define get_header_tar_Z	0
+#define get_header_tar_Z NULL
 #endif
 
 #ifdef CHECK_FOR_CHILD_EXITCODE

Modified: branches/busybox_1_4_stable/libbb/vdprintf.c
===================================================================
--- branches/busybox_1_4_stable/libbb/vdprintf.c	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/libbb/vdprintf.c	2007-01-24 22:03:46 UTC (rev 17509)
@@ -7,12 +7,8 @@
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
-#include <stdio.h>
-#include <unistd.h>
 #include "libbb.h"
 
-
-
 #if defined(__GLIBC__) && __GLIBC__ < 2
 int vdprintf(int d, const char *format, va_list ap)
 {

Modified: branches/busybox_1_4_stable/libbb/xfuncs.c
===================================================================
--- branches/busybox_1_4_stable/libbb/xfuncs.c	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/libbb/xfuncs.c	2007-01-24 22:03:46 UTC (rev 17509)
@@ -81,13 +81,14 @@
 	t = (char*) s;
 	while (m) {
 		if (!*t) break;
-		m--; t++;
+		m--;
+		t++;
 	}
-	n = n - m;
+	n -= m;
 	t = xmalloc(n + 1);
 	t[n] = '\0';
 
-	return memcpy(t,s,n);
+	return memcpy(t, s, n);
 }
 
 // Die if we can't open a file and return a FILE * to it.

Modified: branches/busybox_1_4_stable/libbb/xreadlink.c
===================================================================
--- branches/busybox_1_4_stable/libbb/xreadlink.c	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/libbb/xreadlink.c	2007-01-24 22:03:46 UTC (rev 17509)
@@ -36,7 +36,7 @@
 
 char *xmalloc_realpath(const char *path)
 {
-#ifdef __GLIBC__
+#if defined(__GLIBC__) && !defined(__UCLIBC__)
 	/* glibc provides a non-standard extension */
 	return realpath(path, NULL);
 #else

Modified: branches/busybox_1_4_stable/networking/libiproute/libnetlink.h
===================================================================
--- branches/busybox_1_4_stable/networking/libiproute/libnetlink.h	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/networking/libiproute/libnetlink.h	2007-01-24 22:03:46 UTC (rev 17509)
@@ -2,6 +2,9 @@
 #ifndef __LIBNETLINK_H__
 #define __LIBNETLINK_H__ 1
 
+#include <linux/types.h>
+/* We need linux/types.h because older kernels use __u32 etc
+ * in linux/[rt]netlink.h. 2.6.19 seems to be ok, though */
 #include <linux/netlink.h>
 #include <linux/rtnetlink.h>
 
@@ -37,6 +40,4 @@
 
 extern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len);
 
-
 #endif /* __LIBNETLINK_H__ */
-

Modified: branches/busybox_1_4_stable/sysklogd/syslogd.c
===================================================================
--- branches/busybox_1_4_stable/sysklogd/syslogd.c	2007-01-24 22:02:01 UTC (rev 17508)
+++ branches/busybox_1_4_stable/sysklogd/syslogd.c	2007-01-24 22:03:46 UTC (rev 17509)
@@ -569,7 +569,7 @@
 	//if (option_mask32 & OPT_locallog) // -L
 #endif
 #if ENABLE_FEATURE_IPC_SYSLOG
-	if ((option_mask32 & OPT_circularlog) && opt_C) // -C
+	if (opt_C) // -Cn
 		shm_size = xatoul_range(opt_C, 4, INT_MAX/1024) * 1024;
 #endif
 
@@ -588,7 +588,7 @@
 #ifdef BB_NOMMU
 		vfork_daemon_rexec(0, 1, argc, argv, "-n");
 #else
-		xdaemon(0, 1);
+		bb_daemonize();
 #endif
 	}
 	umask(0);




More information about the busybox-cvs mailing list