From 43834bff1a2b1af348ff69d538a884bf1070b90c Mon Sep 17 00:00:00 2001 From: Garrett Wollman Date: Sat, 6 Aug 2011 23:55:50 -0400 Subject: [PATCH] butc: avoid freeing uninitialized pointer in writeDbDump() In error conditions, charList could be freed before it is initialized. Move the initialization up to before the error checks. Change-Id: I678f40552590e238f494507f7410233cdbb949ac Found-by: clang static analyzer Reviewed-on: http://gerrit.openafs.org/5167 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear --- src/butc/tcudbprocs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/butc/tcudbprocs.c b/src/butc/tcudbprocs.c index b4424d86c..3fe76f550 100644 --- a/src/butc/tcudbprocs.c +++ b/src/butc/tcudbprocs.c @@ -415,6 +415,8 @@ writeDbDump(struct butm_tapeInfo *tapeInfoPtr, afs_uint32 taskId, extern struct tapeConfig globalTapeConfig; extern struct udbHandleS udbHandle; + charList.charListT_val = 0; + charList.charListT_len = 0; blockSize = BUTM_BLKSIZE; writeBlock = (char *)malloc(BUTM_BLOCKSIZE); if (!writeBlock) @@ -445,8 +447,6 @@ writeDbDump(struct butm_tapeInfo *tapeInfoPtr, afs_uint32 taskId, writeBufPtr = &writeBuffer[0]; firstcall = 1; sequence = 1; - charList.charListT_val = 0; - charList.charListT_len = 0; while (1) { /*w */ /* When no data in buffer, read data from the budb_server */ -- 2.39.5