krb5int_yarrow_final could deref NULL if out of memory
authorEzra Peisach <epeisach@mit.edu>
Thu, 11 Jun 2009 17:01:13 +0000 (17:01 +0000)
committerEzra Peisach <epeisach@mit.edu>
Thu, 11 Jun 2009 17:01:13 +0000 (17:01 +0000)
 krb5int_yarrow_final tests if the Yarrow_CTX* is valid (not NULL) -
 and if not - signals and error for return - but still invokes
 mem_zero (memset) with it as an argument.  This will only happen in
 an out-of-memory situation.

ticket: 6512

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22410 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/crypto/yarrow/yarrow.c

index b52057daa0a30875ed86b4f657abed221bf38c60..9e3c915881c871f470dea5fa97976fd17cf9cce3 100644 (file)
@@ -918,7 +918,8 @@ int krb5int_yarrow_final(Yarrow_CTX* y)
 
  CATCH:
     krb5int_yarrow_cipher_final(&y->cipher);
-    mem_zero( y, sizeof(Yarrow_CTX) );
+    if ( y ) 
+       mem_zero( y, sizeof(Yarrow_CTX) );
     if ( locked ) { TRY( UNLOCK() ); }
     EXCEP_RET;
 }