svn commit: trunk/busybox: archival coreutils include libbb miscuti etc...

aldot at busybox.net aldot at busybox.net
Thu Apr 13 12:45:08 UTC 2006


Author: aldot
Date: 2006-04-13 05:45:04 -0700 (Thu, 13 Apr 2006)
New Revision: 14847

Log:
- patch from Denis Vlasenko to add and use bb_xopen3()


Modified:
   trunk/busybox/archival/gzip.c
   trunk/busybox/coreutils/dd.c
   trunk/busybox/include/libbb.h
   trunk/busybox/libbb/Makefile.in
   trunk/busybox/libbb/xfuncs.c
   trunk/busybox/miscutils/crontab.c
   trunk/busybox/miscutils/mt.c
   trunk/busybox/miscutils/rx.c
   trunk/busybox/modutils/insmod.c
   trunk/busybox/networking/vconfig.c
   trunk/busybox/util-linux/mkfs_minix.c
   trunk/busybox/util-linux/mkswap.c


Changeset:
Modified: trunk/busybox/archival/gzip.c
===================================================================
--- trunk/busybox/archival/gzip.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/archival/gzip.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -1228,7 +1228,7 @@
 				inFileNum = STDIN_FILENO;
 				outFileNum = STDOUT_FILENO;
 			} else {
-				inFileNum = bb_xopen(argv[i], O_RDONLY);
+				inFileNum = bb_xopen3(argv[i], O_RDONLY, 0);
 				if (fstat(inFileNum, &statBuf) < 0)
 					bb_perror_msg_and_die("%s", argv[i]);
 				time_stamp = statBuf.st_ctime;

Modified: trunk/busybox/coreutils/dd.c
===================================================================
--- trunk/busybox/coreutils/dd.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/coreutils/dd.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -5,20 +5,7 @@
  *
  * Copyright (C) 2000,2001  Matt Kraai
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 #include <sys/types.h>
@@ -119,9 +106,7 @@
 			oflag |= O_TRUNC;
 		}
 
-		if ((ofd = open(outfile, oflag, 0666)) < 0) {
-			bb_perror_msg_and_die("%s", outfile);
-		}
+		ofd = bb_xopen3(outfile, oflag, 0666);
 
 		if (seek && trunc_flag) {
 			if (ftruncate(ofd, seek * bs) < 0) {

Modified: trunk/busybox/include/libbb.h
===================================================================
--- trunk/busybox/include/libbb.h	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/include/libbb.h	2006-04-13 12:45:04 UTC (rev 14847)
@@ -440,6 +440,7 @@
 extern int obscure(const char *old, const char *newval, const struct passwd *pwdp);
 
 extern int bb_xopen(const char *pathname, int flags);
+extern int bb_xopen3(const char *pathname, int flags, int mode);
 extern ssize_t bb_xread(int fd, void *buf, size_t count);
 extern void bb_xread_all(int fd, void *buf, size_t count);
 extern unsigned char bb_xread_char(int fd);

Modified: trunk/busybox/libbb/Makefile.in
===================================================================
--- trunk/busybox/libbb/Makefile.in	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/libbb/Makefile.in	2006-04-13 12:45:04 UTC (rev 14847)
@@ -68,7 +68,7 @@
 
 LIBBB_MSRC1:=$(srcdir)/xfuncs.c
 LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \
-	xfopen.o xopen.o xread.o xread_all.o xread_char.o \
+	xfopen.o xopen.o xopen3.o xread.o xread_all.o xread_char.o \
 	xferror.o xferror_stdout.o xfflush_stdout.o strlen.o
 LIBBB_MOBJ1:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ1))
 $(LIBBB_MOBJ1):$(LIBBB_MSRC1)

Modified: trunk/busybox/libbb/xfuncs.c
===================================================================
--- trunk/busybox/libbb/xfuncs.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/libbb/xfuncs.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -100,10 +100,17 @@
 #ifdef L_xopen
 int bb_xopen(const char *pathname, int flags)
 {
+	return bb_xopen3(pathname, flags, 0777);
+}
+#endif
+
+#ifdef L_xopen3
+int bb_xopen3(const char *pathname, int flags, int mode)
+{
 	int ret;
 
-	ret = open(pathname, flags, 0777);
-	if (ret == -1) {
+	ret = open(pathname, flags, mode);
+	if (ret < 0) {
 		bb_perror_msg_and_die("%s", pathname);
 	}
 	return ret;
@@ -116,7 +123,7 @@
 	ssize_t size;
 
 	size = read(fd, buf, count);
-	if (size == -1) {
+	if (size < 0) {
 		bb_perror_msg_and_die(bb_msg_read_error);
 	}
 	return(size);

Modified: trunk/busybox/miscutils/crontab.c
===================================================================
--- trunk/busybox/miscutils/crontab.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/miscutils/crontab.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -179,20 +179,16 @@
 	    char buf[1024];
 
 	    snprintf(tmp, sizeof(tmp), TMPDIR "/crontab.%d", getpid());
-	    if ((fd = open(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600)) >= 0) {
-		chown(tmp, getuid(), getgid());
-		if ((fi = fopen(pas->pw_name, "r"))) {
-		    while ((n = fread(buf, 1, sizeof(buf), fi)) > 0)
-			write(fd, buf, n);
-		}
-		EditFile(caller, tmp);
-		remove(tmp);
-		lseek(fd, 0L, 0);
-		repFd = fd;
-	    } else {
-		bb_error_msg_and_die("unable to create %s", tmp);
+	    fd = bb_xopen3(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600);
+	    chown(tmp, getuid(), getgid());
+	    if ((fi = fopen(pas->pw_name, "r"))) {
+		while ((n = fread(buf, 1, sizeof(buf), fi)) > 0)
+		    write(fd, buf, n);
 	    }
-
+	    EditFile(caller, tmp);
+	    remove(tmp);
+	    lseek(fd, 0L, 0);
+	    repFd = fd;
 	}
 	option = REPLACE;
 	/* fall through */
@@ -289,11 +285,8 @@
     if (ChangeUser(user, 0) < 0)
 	exit(0);
 
-    fd = open(file, O_RDONLY);
-    if (fd < 0) {
-	bb_error_msg("unable to open %s", file);
-	exit(0);
-    }
+    bb_default_error_retval = 0;
+    fd = bb_xopen3(file, O_RDONLY, 0);
     buf[0] = 0;
     write(filedes[1], buf, 1);
     while ((n = read(fd, buf, sizeof(buf))) > 0) {

Modified: trunk/busybox/miscutils/mt.c
===================================================================
--- trunk/busybox/miscutils/mt.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/miscutils/mt.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -101,8 +101,7 @@
 			break;
 	}
 
-	if ((fd = open(file, mode, 0)) < 0)
-		bb_perror_msg_and_die("%s", file);
+	fd = bb_xopen3(file, mode, 0);
 
 	switch (code->value) {
 		case MTTELL:

Modified: trunk/busybox/miscutils/rx.c
===================================================================
--- trunk/busybox/miscutils/rx.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/miscutils/rx.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -1,3 +1,4 @@
+/* vi: set sw=4 ts=4: */
 /*-------------------------------------------------------------------------
  * Filename:      xmodem.c
  * Version:       $Id: rx.c,v 1.2 2004/03/15 08:28:46 andersen Exp $
@@ -289,14 +290,9 @@
 			bb_show_usage();
 
 	fn = argv[1];
-	ttyfd = open("/dev/tty", O_RDWR);
-	if (ttyfd < 0)
-			bb_error_msg_and_die("%s: open on /dev/tty failed: %m\n", argv[0]);
+	ttyfd = bb_xopen3("/dev/tty", O_RDWR, 0);
+	filefd = bb_xopen3(fn, O_RDWR|O_CREAT|O_TRUNC, 0666);
 
-	filefd = open(fn, O_RDWR|O_CREAT|O_TRUNC, 0666);
-	if (filefd < 0)
-			bb_error_msg_and_die("%s: open on %s failed: %m\n", argv[0], fn);
-
 	if (tcgetattr(ttyfd, &tty) < 0)
 			bb_error_msg_and_die("%s: tcgetattr failed: %m\n", argv[0]);
 

Modified: trunk/busybox/modutils/insmod.c
===================================================================
--- trunk/busybox/modutils/insmod.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/modutils/insmod.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -55,20 +55,7 @@
  *   Restructured (and partly rewritten) by:
  *   Björn Ekwall <bj0rn at blox.se> February 1999
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
 
 #include <stdlib.h>
@@ -4297,9 +4284,7 @@
 		strcat(options, " ");
 	}
 
-	if ((fd = open(filename, O_RDONLY, 0)) < 0) {
-		bb_perror_msg_and_die("cannot open module `%s'", filename);
-	}
+	fd = bb_xopen3(filename, O_RDONLY, 0);
 
 	fstat(fd, &st);
 	len = st.st_size;

Modified: trunk/busybox/networking/vconfig.c
===================================================================
--- trunk/busybox/networking/vconfig.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/networking/vconfig.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -123,7 +123,8 @@
 	}
 
 	/* Don't bother closing the filedes.  It will be closed on cleanup. */
-	bb_xopen(conf_file_name, O_RDONLY);	/* Will die if 802.1q is not present */
+	/* Will die if 802.1q is not present */
+	bb_xopen3(conf_file_name, O_RDONLY, 0);
 
 	memset(&ifr, 0, sizeof(struct vlan_ioctl_args));
 

Modified: trunk/busybox/util-linux/mkfs_minix.c
===================================================================
--- trunk/busybox/util-linux/mkfs_minix.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/util-linux/mkfs_minix.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -307,7 +307,7 @@
 	int fd;
 	long size;
 
-	fd = bb_xopen(file, O_RDWR);
+	fd = bb_xopen3(file, O_RDWR, 0);
 	if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
 		close(fd);
 		return (size * 512);
@@ -820,7 +820,7 @@
 	tmp += dirsize;
 	*(short *) tmp = 2;
 	strcpy(tmp + 2, ".badblocks");
-	DEV = bb_xopen(device_name, O_RDWR);
+	DEV = bb_xopen3(device_name, O_RDWR, 0);
 	if (fstat(DEV, &statbuf) < 0)
 		bb_error_msg_and_die("unable to stat %s", device_name);
 	if (!S_ISBLK(statbuf.st_mode))

Modified: trunk/busybox/util-linux/mkswap.c
===================================================================
--- trunk/busybox/util-linux/mkswap.c	2006-04-13 05:51:11 UTC (rev 14846)
+++ trunk/busybox/util-linux/mkswap.c	2006-04-13 12:45:04 UTC (rev 14847)
@@ -258,7 +258,7 @@
 	int fd;
 	long size;
 
-	fd = bb_xopen(file, O_RDONLY);
+	fd = bb_xopen3(file, O_RDONLY, 0);
 	if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
 		size /= pagesize / 512;
 	} else {
@@ -341,7 +341,7 @@
 				PAGES * goodpages);
 	}
 
-	DEV = bb_xopen(device_name, O_RDWR);
+	DEV = bb_xopen3(device_name, O_RDWR, 0);
 	if (fstat(DEV, &statbuf) < 0)
 		bb_perror_msg_and_die("%s", device_name);
 	if (!S_ISBLK(statbuf.st_mode))




More information about the busybox-cvs mailing list