summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authoritojun <itojun@NetBSD.org>2003-09-19 05:52:48 +0000
committeritojun <itojun@NetBSD.org>2003-09-19 05:52:48 +0000
commit4698292ea9e6a40848c67f5f5f05d5d6d767cc53 (patch)
treed311d9be7918c0fe1184441407ab608cc9d00808 /libexec
parentba0ee95e6c3cfc1be95e3bd49875e6605d2d3b26 (diff)
realloc pedannt
Diffstat (limited to 'libexec')
-rw-r--r--libexec/lfs_cleanerd/library.c14
-rw-r--r--libexec/telnetd/sys_term.c11
2 files changed, 15 insertions, 10 deletions
diff --git a/libexec/lfs_cleanerd/library.c b/libexec/lfs_cleanerd/library.c
index b71a511d0cd..7b73dfdac8c 100644
--- a/libexec/lfs_cleanerd/library.c
+++ b/libexec/lfs_cleanerd/library.c
@@ -1,4 +1,4 @@
-/* $NetBSD: library.c,v 1.37 2003/08/07 09:46:43 agc Exp $ */
+/* $NetBSD: library.c,v 1.38 2003/09/19 05:52:48 itojun Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)library.c 8.3 (Berkeley) 5/24/95";
#else
-__RCSID("$NetBSD: library.c,v 1.37 2003/08/07 09:46:43 agc Exp $");
+__RCSID("$NetBSD: library.c,v 1.38 2003/09/19 05:52:48 itojun Exp $");
#endif
#endif /* not lint */
@@ -403,7 +403,7 @@ pseg_size(daddr_t pseg_addr, FS_INFO *fsp, SEGSUM *sp)
int
lfs_segmapv(FS_INFO *fsp, int seg, caddr_t seg_buf, BLOCK_INFO **blocks, int *bcount)
{
- BLOCK_INFO *bip, *_bip;
+ BLOCK_INFO *bip, *_bip, *nbip;
SEGSUM *sp;
SEGUSE *sup;
FINFO *fip;
@@ -475,10 +475,12 @@ lfs_segmapv(FS_INFO *fsp, int seg, caddr_t seg_buf, BLOCK_INFO **blocks, int *bc
#endif
if (*bcount + nblocks + sp->ss_ninos > nelem) {
- nelem = *bcount + nblocks + sp->ss_ninos;
- bip = realloc(bip, nelem * sizeof(BLOCK_INFO));
- if (!bip)
+ nbip = realloc(bip, (*bcount + nblocks + sp->ss_ninos) *
+ sizeof(BLOCK_INFO));
+ if (!nbip)
goto err0;
+ bip = nbip;
+ nelem = *bcount + nblocks + sp->ss_ninos;
}
add_blocks(fsp, bip, bcount, sp, seg_buf, seg_addr, pseg_addr);
add_inodes(fsp, bip, bcount, sp, seg_buf, seg_addr);
diff --git a/libexec/telnetd/sys_term.c b/libexec/telnetd/sys_term.c
index 439cdce3430..4565b7dd704 100644
--- a/libexec/telnetd/sys_term.c
+++ b/libexec/telnetd/sys_term.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_term.c,v 1.39 2003/08/07 09:46:52 agc Exp $ */
+/* $NetBSD: sys_term.c,v 1.40 2003/09/19 05:54:46 itojun Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)sys_term.c 8.4+1 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: sys_term.c,v 1.39 2003/08/07 09:46:52 agc Exp $");
+__RCSID("$NetBSD: sys_term.c,v 1.40 2003/09/19 05:54:46 itojun Exp $");
#endif
#endif /* not lint */
@@ -700,6 +700,7 @@ addarg(argv, val)
register char *val;
{
register char **cpp;
+ char **nargv;
if (argv == NULL) {
/*
@@ -715,12 +716,14 @@ addarg(argv, val)
;
if (cpp == &argv[(long)argv[-1]]) {
--argv;
- *argv = (char *)((long)(*argv) + 10);
- argv = (char **)realloc(argv, sizeof(*argv) * ((long)(*argv) + 2));
+ nargv = (char **)realloc(argv,
+ sizeof(*argv) * ((long)(*argv) + 10 + 2));
if (argv == NULL) {
fatal(net, "not enough memory");
/*NOTREACHED*/
}
+ argv = nargv;
+ *argv = (char *)((long)(*argv) + 10);
argv++;
cpp = &argv[(long)argv[-1] - 10];
}