"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));
|
memset(d, 0, sizeof(struct xbsd_disklabel));
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "%s/boot%s", bootdir, dkbasename);
|
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))
|
(int) xbsd_dlabel.d_bbsize - xbsd_dlabel.d_secsize))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -969,7 +969,7 @@ xbsd_writelabel (struct partition *p, struct xbsd_disklabel *d)
|
|||||||
d, sizeof(struct xbsd_disklabel));
|
d, sizeof(struct xbsd_disklabel));
|
||||||
|
|
||||||
#if defined (__alpha__) && BSD_LABELSECTOR == 0
|
#if defined (__alpha__) && BSD_LABELSECTOR == 0
|
||||||
alpha_bootblock_checksum (disklabelbuffer);
|
alpha_bootblock_checksum(disklabelbuffer);
|
||||||
if (lseek(fd, 0, SEEK_SET) == -1)
|
if (lseek(fd, 0, SEEK_SET) == -1)
|
||||||
fdisk_fatal(unable_to_seek);
|
fdisk_fatal(unable_to_seek);
|
||||||
if (BSD_BBSIZE != write(fd, disklabelbuffer, BSD_BBSIZE))
|
if (BSD_BBSIZE != write(fd, disklabelbuffer, BSD_BBSIZE))
|
||||||
|
@ -613,7 +613,8 @@ static void alarm_intr(int alnum)
|
|||||||
static void check_blocks(void)
|
static void check_blocks(void)
|
||||||
{
|
{
|
||||||
int try, got;
|
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;
|
currently_testing = 0;
|
||||||
signal(SIGALRM, alarm_intr);
|
signal(SIGALRM, alarm_intr);
|
||||||
@ -635,6 +636,7 @@ static void check_blocks(void)
|
|||||||
badblocks++;
|
badblocks++;
|
||||||
currently_testing++;
|
currently_testing++;
|
||||||
}
|
}
|
||||||
|
free(buffer);
|
||||||
printf("%d bad block(s)\n", badblocks);
|
printf("%d bad block(s)\n", badblocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user