From ea6b6ea781cd82fc6b4563a9ebf250d92176eb2f Mon Sep 17 00:00:00 2001 From: "bienvenu%nventure.com" Date: Wed, 25 Jan 2006 21:17:03 +0000 Subject: [PATCH] fix crash sending e-mail with kerberos auth via sspi, 319210 patch by simon@sxw.org.uk, r=cneberg@gmail.com, sr=bienvenu git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@188177 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/extensions/auth/nsAuthSSPI.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/mozilla/extensions/auth/nsAuthSSPI.cpp b/mozilla/extensions/auth/nsAuthSSPI.cpp index 355ab7cdc8c..08a173de00f 100644 --- a/mozilla/extensions/auth/nsAuthSSPI.cpp +++ b/mozilla/extensions/auth/nsAuthSSPI.cpp @@ -390,6 +390,9 @@ nsAuthSSPI::Unwrap(const void *inToken, ib[0].BufferType = SECBUFFER_STREAM; ib[0].cbBuffer = inTokenLen; ib[0].pvBuffer = nsMemory::Alloc(ib[0].cbBuffer); + if (!ib[0].pvBuffer) + return NS_ERROR_OUT_OF_MEMORY; + memcpy(ib[0].pvBuffer, inToken, inTokenLen); // app data @@ -413,7 +416,10 @@ nsAuthSSPI::Unwrap(const void *inToken, nsMemory::Free(ib[0].pvBuffer); - return rc; + if (!SEC_SUCCESS(rc)) + return NS_ERROR_FAILURE; + + return NS_OK; } // utility class used to free memory on exit @@ -457,7 +463,7 @@ nsAuthSSPI::Wrap(const void *inToken, &sizes); if (!SEC_SUCCESS(rc)) - return rc; + return NS_ERROR_FAILURE; ibd.cBuffers = 3; ibd.pBuffers = bufs.ib; @@ -508,7 +514,11 @@ nsAuthSSPI::Wrap(const void *inToken, memcpy(outToken + bufs.ib[0].cbBuffer + bufs.ib[1].cbBuffer, bufs.ib[2].pvBuffer, bufs.ib[2].cbBuffer); + + *outTokenLen = len; + + return NS_OK; } - return rc; + return NS_ERROR_FAILURE; }