fix: don't crash when nativeImage.createFromBuffer() called with invalid buffer (#17344)
This commit is contained in:
parent
90fcc574f4
commit
df7dc9396e
2 changed files with 11 additions and 1 deletions
|
@ -508,6 +508,11 @@ mate::Handle<NativeImage> NativeImage::CreateFromPath(
|
||||||
mate::Handle<NativeImage> NativeImage::CreateFromBuffer(
|
mate::Handle<NativeImage> NativeImage::CreateFromBuffer(
|
||||||
mate::Arguments* args,
|
mate::Arguments* args,
|
||||||
v8::Local<v8::Value> buffer) {
|
v8::Local<v8::Value> buffer) {
|
||||||
|
if (!node::Buffer::HasInstance(buffer)) {
|
||||||
|
args->ThrowError("buffer must be a node Buffer");
|
||||||
|
return mate::Handle<NativeImage>();
|
||||||
|
}
|
||||||
|
|
||||||
int width = 0;
|
int width = 0;
|
||||||
int height = 0;
|
int height = 0;
|
||||||
double scale_factor = 1.;
|
double scale_factor = 1.;
|
||||||
|
|
|
@ -127,7 +127,7 @@ describe('nativeImage module', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('createFromBuffer(buffer, scaleFactor)', () => {
|
describe('createFromBuffer(buffer, options)', () => {
|
||||||
it('returns an empty image when the buffer is empty', () => {
|
it('returns an empty image when the buffer is empty', () => {
|
||||||
expect(nativeImage.createFromBuffer(Buffer.from([])).isEmpty())
|
expect(nativeImage.createFromBuffer(Buffer.from([])).isEmpty())
|
||||||
})
|
})
|
||||||
|
@ -165,6 +165,11 @@ describe('nativeImage module', () => {
|
||||||
{ width: 538, height: 190, scaleFactor: 2.0 })
|
{ width: 538, height: 190, scaleFactor: 2.0 })
|
||||||
expect(imageI.getSize()).to.deep.equal({ width: 269, height: 95 })
|
expect(imageI.getSize()).to.deep.equal({ width: 269, height: 95 })
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('throws on invalid arguments', () => {
|
||||||
|
expect(() => nativeImage.createFromBuffer(null)).to.throw('buffer must be a node Buffer')
|
||||||
|
expect(() => nativeImage.createFromBuffer([12, 14, 124, 12])).to.throw('buffer must be a node Buffer')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('createFromDataURL(dataURL)', () => {
|
describe('createFromDataURL(dataURL)', () => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue