From: Jeffrey Altman Date: Mon, 12 Nov 2007 19:07:06 +0000 (+0000) Subject: STABLE14-viced-accurately-track-file-callbacks-20071112 X-Git-Tag: openafs-stable-1_4_7pre1~166 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=5204f53d9953c5eaa9dda6cfca3a6ee2f00aa7e7;p=packages%2Fo%2Fopenafs.git STABLE14-viced-accurately-track-file-callbacks-20071112 FIXES 74708 this should fix the issue with cbfree being corrupted. a more exhaustive pointer-blunting patch should probably be pulled in, but, this is simple and obvious (cherry picked from commit d284c0e7c11e8ee4755ac152e5e47d4abf304afc) --- diff --git a/src/viced/callback.c b/src/viced/callback.c index 3be060bf7..b528831a8 100644 --- a/src/viced/callback.c +++ b/src/viced/callback.c @@ -487,7 +487,7 @@ CDelPtr(register struct FileEntry *fe, register afs_uint32 * cbp, CcdelB++; *cbp = cb->cnext; FreeCB(cb); - if (deletefe && (--fe->ncbs == 0)) + if ((--fe->ncbs == 0) && deletefe) FDel(fe); return 0; } @@ -1024,6 +1024,7 @@ DeleteFileCallBacks(AFSFid * fid) TDel(cb); HDel(cb); FreeCB(cb); + fe->ncbs--; } FDel(fe); H_UNLOCK;