From 93f6aa6bca1621fc5bce8f543e3e0b3a0be01378 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Thu, 30 Nov 2006 21:11:01 +0000 Subject: [PATCH] "make bigdata" biggest offender dealt with: xmalloc 16Kb buffer instead of keeping it in bss --- util-linux/fdisk_osf.c | 4 ++-- util-linux/mkfs_minix.c | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/util-linux/fdisk_osf.c b/util-linux/fdisk_osf.c index 71cf138ee..bff2371e4 100644 --- a/util-linux/fdisk_osf.c +++ b/util-linux/fdisk_osf.c @@ -735,7 +735,7 @@ xbsd_write_bootstrap(void) memset(d, 0, sizeof(struct xbsd_disklabel)); snprintf(path, sizeof(path), "%s/boot%s", bootdir, dkbasename); - if (!xbsd_get_bootstrap (path, &disklabelbuffer[xbsd_dlabel.d_secsize], + if (!xbsd_get_bootstrap(path, &disklabelbuffer[xbsd_dlabel.d_secsize], (int) xbsd_dlabel.d_bbsize - xbsd_dlabel.d_secsize)) return; @@ -969,7 +969,7 @@ xbsd_writelabel (struct partition *p, struct xbsd_disklabel *d) d, sizeof(struct xbsd_disklabel)); #if defined (__alpha__) && BSD_LABELSECTOR == 0 - alpha_bootblock_checksum (disklabelbuffer); + alpha_bootblock_checksum(disklabelbuffer); if (lseek(fd, 0, SEEK_SET) == -1) fdisk_fatal(unable_to_seek); if (BSD_BBSIZE != write(fd, disklabelbuffer, BSD_BBSIZE)) diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index f0b658d0e..af19da68c 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c @@ -613,7 +613,8 @@ static void alarm_intr(int alnum) static void check_blocks(void) { int try, got; - static char buffer[BLOCK_SIZE * TEST_BUFFER_BLOCKS]; + /* buffer[] was the biggest static in entire bbox */ + char *buffer = xmalloc(BLOCK_SIZE * TEST_BUFFER_BLOCKS); currently_testing = 0; signal(SIGALRM, alarm_intr); @@ -635,6 +636,7 @@ static void check_blocks(void) badblocks++; currently_testing++; } + free(buffer); printf("%d bad block(s)\n", badblocks); } -- 2.25.1