From 9c5b45d252d70269787b68d2d41cdaa51b654623 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 13 Dec 2007 20:57:11 +0000 Subject: [PATCH] STABLE146-viced-accurately-track-file-callbacks-20071112 LICENSE IPL10 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) --- src/viced/callback.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/viced/callback.c b/src/viced/callback.c index 0afd567963..cac19529fc 100644 --- a/src/viced/callback.c +++ b/src/viced/callback.c @@ -493,7 +493,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; } @@ -1030,6 +1030,7 @@ DeleteFileCallBacks(AFSFid * fid) TDel(cb); HDel(cb); FreeCB(cb); + fe->ncbs--; } FDel(fe); H_UNLOCK;