Module Name:    src
Committed By:   christos
Date:           Thu Jan 21 17:14:05 UTC 2016

Modified Files:
        src/sys/arch/powerpc/stand/mkbootimage: mkbootimage.c

Log Message:
PR/50685: David Binderman: fix memory leak


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 \
    src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c
diff -u src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c:1.18 src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c:1.19
--- src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c:1.18	Tue Apr 22 17:37:52 2014
+++ src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c	Thu Jan 21 12:14:05 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkbootimage.c,v 1.18 2014/04/22 21:37:52 phx Exp $	*/
+/*	$NetBSD: mkbootimage.c,v 1.19 2016/01/21 17:14:05 christos Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -336,7 +336,7 @@ prep_build_image(char *kernel, char *boo
 	lseek(prep_fd, 0x400, SEEK_SET);
 
 	/* Copy boot image */
-	elf_img = (unsigned char *)malloc(elf_img_len);
+	elf_img = malloc(elf_img_len);
 	if (!elf_img)
 		errx(3, "Can't malloc: %s", strerror(errno));
 	if (read(elf_fd, elf_img, elf_img_len) != elf_img_len)
@@ -347,7 +347,7 @@ prep_build_image(char *kernel, char *boo
 
 	if (inkernflag) {
 		/* Copy kernel */
-		kern_img = (unsigned char *)malloc(kern_stat.st_size);
+		kern_img = malloc(kern_stat.st_size);
 
 		if (kern_img == NULL)
 			errx(3, "Can't malloc: %s", strerror(errno));
@@ -502,7 +502,7 @@ rs6000_build_image(char *kernel, char *b
 	lseek(rs6000_fd, 0x400, SEEK_SET);
 
 	/* Copy boot image */
-	elf_img = (unsigned char *)malloc(elf_img_len);
+	elf_img = malloc(elf_img_len);
 	if (!elf_img)
 		errx(3, "Can't malloc: %s", strerror(errno));
 	if (read(elf_fd, elf_img, elf_img_len) != elf_img_len)
@@ -516,7 +516,7 @@ rs6000_build_image(char *kernel, char *b
 	lseek(rs6000_fd, elf_pad, SEEK_CUR);
 
 	/* Copy kernel */
-	kern_img = (unsigned char *)malloc(kern_stat.st_size);
+	kern_img = malloc(kern_stat.st_size);
 
 	if (kern_img == NULL)
 		errx(3, "Can't malloc: %s", strerror(errno));
@@ -735,7 +735,7 @@ bebox_build_image(char *kernel, char *bo
 		bebox_write_header(bebox_fd, elf_img_len, kern_stat.st_size);
 
 		/* Copy kernel */
-		kern_img = (unsigned char *)malloc(kern_stat.st_size);
+		kern_img = malloc(kern_stat.st_size);
 
 		if (kern_img == NULL)
 			errx(3, "Can't malloc: %s", strerror(errno));
@@ -786,7 +786,7 @@ bebox_build_image(char *kernel, char *bo
 	toff = bebox_write_header(bebox_fd, elf_img_len, tmp);
 
 	/* Copy boot image */
-	elf_img = (unsigned char *)malloc(elf_img_len);
+	elf_img = malloc(elf_img_len);
 	if (!elf_img)
 		errx(3, "Can't malloc: %s", strerror(errno));
 	if (read(elf_fd, elf_img, elf_img_len) != elf_img_len)
@@ -802,7 +802,7 @@ bebox_build_image(char *kernel, char *bo
 	/* Now go back and write in the block header */
 	endoff = lseek(bebox_fd, 0, SEEK_END);
 	lseek(bebox_fd, 0, SEEK_SET);
-	header_img = (unsigned char *)malloc(BEBOX_HEADER_SIZE);
+	header_img = malloc(BEBOX_HEADER_SIZE);
 	if (!header_img)
 		errx(3, "Can't malloc: %s", strerror(errno));
 	memset(header_img, 0, BEBOX_HEADER_SIZE);
@@ -837,6 +837,7 @@ bebox_build_image(char *kernel, char *bo
 	write(bebox_fd, header_img, flength - endoff);
 
 	close(bebox_fd);
+	free(header_img);
 
 	return 0;
 }

Reply via email to