Bug 964561 - Part 10: Fix a possible leak in BindAdoptedBlobByName()/BindAdoptedBlobByIndex(); r=mak

This commit is contained in:
Jan Varga 2016-10-25 21:18:37 +02:00
Родитель d1f5aaafa4
Коммит 1ec718d61d
1 изменённых файлов: 5 добавлений и 8 удалений

Просмотреть файл

@ -6,6 +6,7 @@
#include <limits.h>
#include "mozilla/UniquePtrExtensions.h"
#include "nsString.h"
#include "mozStorageError.h"
@ -367,11 +368,9 @@ BindingParams::BindAdoptedBlobByName(const nsACString &aName,
uint8_t *aValue,
uint32_t aValueSize)
{
UniqueFreePtr<uint8_t> uniqueValue(aValue);
NS_ENSURE_ARG_MAX(aValueSize, INT_MAX);
std::pair<uint8_t *, int> data(
aValue,
int(aValueSize)
);
std::pair<uint8_t *, int> data(uniqueValue.release(), int(aValueSize));
nsCOMPtr<nsIVariant> value(new AdoptedBlobVariant(data));
return BindByName(aName, value);
@ -514,11 +513,9 @@ BindingParams::BindAdoptedBlobByIndex(uint32_t aIndex,
uint8_t *aValue,
uint32_t aValueSize)
{
UniqueFreePtr<uint8_t> uniqueValue(aValue);
NS_ENSURE_ARG_MAX(aValueSize, INT_MAX);
std::pair<uint8_t *, int> data(
static_cast<uint8_t *>(aValue),
int(aValueSize)
);
std::pair<uint8_t *, int> data(uniqueValue.release(), int(aValueSize));
nsCOMPtr<nsIVariant> value(new AdoptedBlobVariant(data));
return BindByIndex(aIndex, value);