From: Stas D. <sta...@us...> - 2012-03-30 10:52:32
|
Update of /cvsroot/husky/hpt/src In directory vz-cvs-4.sog:/tmp/cvs-serv29777/hpt/src Modified Files: Tag: husky-1_4-stable dupe.c Log Message: Fix (workaround!) segfault on corrupted dupebase type "text". Bugreport from Michael Dukelsky 2:5020/1042 Index: dupe.c =================================================================== RCS file: /cvsroot/husky/hpt/src/dupe.c,v retrieving revision 1.76 retrieving revision 1.76.2.1 diff -u -d -r1.76 -r1.76.2.1 --- dupe.c 4 Feb 2003 08:16:29 -0000 1.76 +++ dupe.c 30 Mar 2012 10:52:29 -0000 1.76.2.1 @@ -119,6 +119,15 @@ const s_hashMDupeEntry *ahashM, *bhashM; int rc = 0; const void *e1 = (const void *)p_e1, *e2 = (const void *)p_e2; + + if (!p_e1) { + w_log( LL_ERR, __FILE__ "::compareEntries(): 1st parameter invalid - pointer is NULL!"); + return 0; + } + if (!p_e2) { + w_log( LL_ERR, __FILE__ "::compareEntries(): 2nd parameter invalid - pointer is NULL!"); + return 0; + } switch (config->typeDupeBase) { case hashDupes: @@ -134,7 +143,7 @@ case hashDupesWmsgid: ahashM = e1; bhashM = e2; if (ahashM->CrcOfDupe == bhashM->CrcOfDupe) - rc = strcmp(ahashM->msgid, bhashM->msgid); + rc = sstrcmp(ahashM->msgid, bhashM->msgid); else if (ahashM->CrcOfDupe > bhashM->CrcOfDupe) rc = 1; else @@ -143,7 +152,7 @@ case textDupes: atxt = e1; btxt = e2; - rc = strcmp(atxt->msgid, btxt->msgid); + rc = sstrcmp(atxt->msgid, btxt->msgid); break; case commonDupeBase: |