]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-volprocs-alloc-vnode-instead-of-using-stack-20071126
authorDerrick Brashear <shadow@dementia.org>
Mon, 26 Nov 2007 22:12:04 +0000 (22:12 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 26 Nov 2007 22:12:04 +0000 (22:12 +0000)
don't use stack here; alloc memory for short term use

(cherry picked from commit 4f98eb48fccde9dd70708b2dd6b0903745d16b7a)

src/volser/volprocs.c

index a63b0f6c00c5272ce2e24dff2a350012f214ed0a..6e53cea8b54a32546de75d658db6843c3dceb36d 100644 (file)
@@ -203,14 +203,14 @@ ViceCreateRoot(Volume *vp)
     struct acl_accessList *ACL;
     ViceFid did;
     Inode inodeNumber, nearInode;
-    char buf[SIZEOF_LARGEDISKVNODE];
-    struct VnodeDiskObject *vnode = (struct VnodeDiskObject *)buf;
+    struct VnodeDiskObject *vnode;
     struct VnodeClassInfo *vcp = &VnodeClassInfo[vLarge];
     IHandle_t *h;
     FdHandle_t *fdP;
     int code;
     afs_fsize_t length;
 
+    vnode = (struct VnodeDiskObject *)malloc(SIZEOF_LARGEDISKVNODE);
     memset(vnode, 0, SIZEOF_LARGEDISKVNODE);
 
     V_pref(vp, nearInode);
@@ -275,6 +275,7 @@ ViceCreateRoot(Volume *vp)
     VNDISK_GET_LEN(length, vnode);
     V_diskused(vp) = nBlocks(length);
 
+    free(vnode);
     return 1;
 }