libafs: don't free the NULL we get from a failed allocation
authorGarrett Wollman <wollman@csail.mit.edu>
Sat, 13 Aug 2011 23:12:50 +0000 (19:12 -0400)
committerDerrick Brashear <shadow@dementix.org>
Sun, 14 Aug 2011 02:07:21 +0000 (19:07 -0700)
In extractPioctlToken(), if we fail to allocate space for
token_opaque_val, don't immediately pass the null pointer
to osi_Free on the error exit path.

Change-Id: Ic95e178cfbc1b1bbcb18701c0bbd5221426342ee
Found-by: clang static analyzer with help from AFS_NONNULL
Reviewed-on: http://gerrit.openafs.org/5262
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

src/afs/afs_tokens.c

index 1b88790..2dc4c30 100644 (file)
@@ -453,7 +453,8 @@ out:
     osi_Free(pioctlToken, sizeof(struct ktc_tokenUnion));
 
     if (code != 0) {
-       osi_Free(opaque->token_opaque_val, opaque->token_opaque_len);
+       if (opaque->token_opaque_val != NULL)
+           osi_Free(opaque->token_opaque_val, opaque->token_opaque_len);
        opaque->token_opaque_val = NULL;
        opaque->token_opaque_len = 0;
     }