]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
memory-allocation-fixes-20030813
authorNickolai Zeldovich <kolya@mit.edu>
Thu, 14 Aug 2003 04:55:55 +0000 (04:55 +0000)
committerNickolai Zeldovich <kolya@mit.edu>
Thu, 14 Aug 2003 04:55:55 +0000 (04:55 +0000)
Properly free allocated memory from osi_AllocLargeSpace and
check the amount of memory requested from osi_AllocSmallSpace
to avoid a possible panic.

src/afs/VNOPS/afs_vnop_lookup.c

index 5fff99e533b50c9c316fc91260e0c8cd040a9295..b794f9de81736ae434a56beadc136f8e2dc4f4e3 100644 (file)
@@ -148,8 +148,8 @@ EvalMountPoint(register struct vcache *avc, struct vcache *advc,
      * doesn't exist? Try adding ".readonly" to volname and look for that.
      * Don't know why we do this. Would have still found it in above call - jpm.
      */
-    if (!tvp && (prefetch == 2)) {
-       buf = (char *)osi_AllocSmallSpace(strlen(volnamep) + 10);
+    if (!tvp && (prefetch == 2) && len < AFS_SMALLOCSIZ - 10) {
+       buf = (char *)osi_AllocSmallSpace(len + 10);
 
        strcpy(buf, volnamep);
        afs_strcat(buf, ".readonly");
@@ -1291,6 +1291,8 @@ OSI_VC_DECL(adp);
            ReleaseReadLock(&tdc->lock);
            ReleaseReadLock(&adp->lock);
            afs_PutDCache(tdc);
+           if (tname && tname != aname)
+               osi_FreeLargeSpace(tname);
            goto redo;
        }