aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-07-29 00:00:14 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-07-29 00:00:14 +0000
commit2f86d13dff6f2a5d4b8ac9350d306ca119a7e0e8 (patch)
treed3817a23aa476cac5b7e800f1008668a2473d139
parent043d15da31200d35c24bc1939ae6b561f5016c84 (diff)
downloadbusybox-w32-2f86d13dff6f2a5d4b8ac9350d306ca119a7e0e8.tar.gz
busybox-w32-2f86d13dff6f2a5d4b8ac9350d306ca119a7e0e8.tar.bz2
busybox-w32-2f86d13dff6f2a5d4b8ac9350d306ca119a7e0e8.zip
libbb: dump: do not use uninitialized memory. close bug 4364.
-rw-r--r--libbb/dump.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libbb/dump.c b/libbb/dump.c
index 0d553d4d0..74c5e1691 100644
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -376,17 +376,16 @@ static unsigned char *get(priv_dumper_t *dumper)
376{ 376{
377 int n; 377 int n;
378 int need, nread; 378 int need, nread;
379 unsigned char *tmpp;
380 int blocksize = dumper->blocksize; 379 int blocksize = dumper->blocksize;
381 380
382 if (!dumper->get__curp) { 381 if (!dumper->get__curp) {
383 dumper->address = (off_t)0; /*DBU:[dave@cray.com] initialize,initialize..*/ 382 dumper->address = (off_t)0; /*DBU:[dave@cray.com] initialize,initialize..*/
384 dumper->get__curp = xmalloc(blocksize); 383 dumper->get__curp = xmalloc(blocksize);
385 dumper->get__savp = xmalloc(blocksize); 384 dumper->get__savp = xzalloc(blocksize); /* need to be initialized */
386 } else { 385 } else {
387 tmpp = dumper->get__curp; 386 unsigned char *tmp = dumper->get__curp;
388 dumper->get__curp = dumper->get__savp; 387 dumper->get__curp = dumper->get__savp;
389 dumper->get__savp = tmpp; 388 dumper->get__savp = tmp;
390 dumper->savaddress += blocksize; 389 dumper->savaddress += blocksize;
391 dumper->address = dumper->savaddress; 390 dumper->address = dumper->savaddress;
392 } 391 }