зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1273711 - Avoid OOM aborts in nsSecretDecoderRing::encode(). r=cykesiopka.
This patch removes an infallible duplication of the base64-encoded string, which can be large. --HG-- extra : rebase_source : c8e709d7afcb53e23fdea919fade857a7fd3fea4
This commit is contained in:
Родитель
2ed4bd01ae
Коммит
99a82c0ac7
|
@ -8,6 +8,7 @@
|
|||
#include "plstr.h"
|
||||
#include "plbase64.h"
|
||||
|
||||
#include "mozilla/Base64.h"
|
||||
#include "mozilla/Services.h"
|
||||
#include "nsMemory.h"
|
||||
#include "nsString.h"
|
||||
|
@ -299,18 +300,11 @@ nsresult
|
|||
nsSecretDecoderRing::encode(const unsigned char* data, int32_t dataLen,
|
||||
char** _retval)
|
||||
{
|
||||
char* result = PL_Base64Encode((const char*)data, dataLen, nullptr);
|
||||
if (!result) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
if (dataLen < 0) {
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
}
|
||||
|
||||
*_retval = NS_strdup(result);
|
||||
PR_DELETE(result);
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
return Base64Encode(BitwiseCast<const char*>(data),
|
||||
AssertedCast<uint32_t>(dataLen), _retval);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
|
Загрузка…
Ссылка в новой задаче