components/ipmitool/patches/7126312.patch
changeset 1137 5f35de46aa92
parent 1136 226e8d9d2ff0
child 1138 6e1f85fa0151
--- a/components/ipmitool/patches/7126312.patch	Wed Jan 30 10:16:26 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
---- ipmitool-1.8.11.old/lib/helper.c	Wed Feb 25 12:38:52 2009
-+++ ipmitool-1.8.11/lib/helper.c	Wed May 16 18:23:19 2012
-@@ -289,19 +289,33 @@
- {
- 	struct stat st1, st2;
- 	FILE * fp;
-+	int fd = -1;
- 
- 	/* verify existance */
-+	errno = 0;
- 	if (lstat(file, &st1) < 0) {
--		if (rw) {
-+		if (rw && (errno == ENOENT)) {
- 			/* does not exist, ok to create */
--			fp = fopen(file, "w");
--			if (fp == NULL) {
-+			fd = open(file,
-+			    O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR
-+			    | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
-+
-+			if ( fd == -1 ) {
- 				lperror(LOG_ERR, "Unable to open file %s "
- 					"for write", file);
- 				return NULL;
- 			}
--			/* created ok, now return the descriptor */
--			return fp;
-+
-+			fp = fdopen(fd, "w");
-+			if (fp == NULL) {
-+				close(fd);
-+				lperror(LOG_ERR, "Unable to open file %s "
-+				    "for write", file);
-+				return NULL;
-+			} else
-+				/* created ok, now return the descriptor */
-+				return fp;
-+
- 		} else {
- 			lprintf(LOG_ERR, "File %s does not exist", file);
- 			return NULL;
-@@ -322,7 +336,7 @@
- 
- 	/* it exists - only regular files, not links */
- 	if (S_ISREG(st1.st_mode) == 0) {
--		lprintf(LOG_ERR, "File %s has invalid mode: %d",
-+		lprintf(LOG_ERR, "File %s has invalid mode: %#o",
- 			file, st1.st_mode);
- 		return NULL;
- 	}
-@@ -347,10 +361,18 @@
- 		return NULL;
- 	}
- 
-+	/* verify dev */
-+	if (st1.st_dev != st2.st_dev) {
-+		lprintf(LOG_ERR, "File %s has invalid dev: %lu != %lu",
-+			file, (ulong_t)st1.st_dev, (ulong_t)st2.st_dev);
-+		fclose(fp);
-+		return NULL;
-+	}
-+
- 	/* verify inode */
- 	if (st1.st_ino != st2.st_ino) {
--		lprintf(LOG_ERR, "File %s has invalid inode: %d != %d",
--			file, st1.st_ino, st2.st_ino);
-+		lprintf(LOG_ERR, "File %s has invalid inode: %lu != %lu",
-+			file, (ulong_t)st1.st_ino, (ulong_t)st2.st_ino);
- 		fclose(fp);
- 		return NULL;
- 	}
-@@ -427,7 +449,6 @@
- #endif
- 
- 	chdir("/");
--	umask(0);
- 
- 	for (fd=0; fd<64; fd++) {
- 		if (fd != intf->fd)