mirror of
https://github.com/sheumann/hush.git
synced 2024-12-28 22:30:05 +00:00
"make bigdata" biggest offender dealt with:
xmalloc 16Kb buffer instead of keeping it in bss
This commit is contained in:
parent
610c4aa197
commit
93f6aa6bca
@ -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))
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user