socsvn commit: r257649 - soc2013/def/crashdump-head/sbin/savecore

def at FreeBSD.org def at FreeBSD.org
Mon Sep 23 16:04:32 UTC 2013


Author: def
Date: Mon Sep 23 16:04:31 2013
New Revision: 257649
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=257649

Log:
  Review savecore(8).

Modified:
  soc2013/def/crashdump-head/sbin/savecore/Makefile
  soc2013/def/crashdump-head/sbin/savecore/dumpfile.c

Modified: soc2013/def/crashdump-head/sbin/savecore/Makefile
==============================================================================
--- soc2013/def/crashdump-head/sbin/savecore/Makefile	Mon Sep 23 15:41:39 2013	(r257648)
+++ soc2013/def/crashdump-head/sbin/savecore/Makefile	Mon Sep 23 16:04:31 2013	(r257649)
@@ -7,7 +7,6 @@
 DPADD=	${LIBZ}
 LDADD=	-lz
 CFLAGS+=-I${SYS}
-WARNS?=	2
 MAN=	savecore.8
 
 .include <bsd.prog.mk>

Modified: soc2013/def/crashdump-head/sbin/savecore/dumpfile.c
==============================================================================
--- soc2013/def/crashdump-head/sbin/savecore/dumpfile.c	Mon Sep 23 15:41:39 2013	(r257648)
+++ soc2013/def/crashdump-head/sbin/savecore/dumpfile.c	Mon Sep 23 16:04:31 2013	(r257649)
@@ -44,12 +44,15 @@
 
 	fd = (dumpFile *)malloc(sizeof(dumpFile));
 	fd->fp = fp;
+	fd->buf_used = 0;
 
 	memcpy(fd->encrypted_key, h->encrypted_key, KERNELDUMP_ENCRYPTED_KEY_SIZE);
 
-	save_key_for(fd, keyname);
+	if (save_key_for(fd, keyname)) {
+		free(fd);
 
-	fd->buf_used = 0;
+		return (NULL);
+	}
 
 	return (funopen(fd, NULL, dwrite, NULL, dclose));
 }
@@ -67,8 +70,11 @@
 		memcpy(fd->buf + fd->buf_used, data, resid);
 		fd->buf_used += resid;
 
-		if (fwrite(fd->buf, 1, PEFS_SECTOR_SIZE, fd->fp) != PEFS_SECTOR_SIZE)
-			return (0);
+		if (fwrite(fd->buf, 1, PEFS_SECTOR_SIZE, fd->fp) != PEFS_SECTOR_SIZE) {
+			fd->buf_used -= resid;
+
+			return (saved);
+		}
 
 		data += resid;
 		size -= resid;


More information about the svn-soc-all mailing list