Skip to content

Commit 32632b2

Browse files
author
JerryShih
committed
Verify the texture buffer for tex_image_2d() call.
1 parent 95ea724 commit 32632b2

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

src/gl_fns.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,6 @@ impl Gl for GlFns {
342342
}
343343
}
344344

345-
// FIXME: Does not verify buffer size -- unsafe!
346345
fn tex_image_2d(&self,
347346
target: GLenum,
348347
level: GLint,
@@ -353,19 +352,18 @@ impl Gl for GlFns {
353352
format: GLenum,
354353
ty: GLenum,
355354
opt_data: Option<&[u8]>) {
356-
match opt_data {
357-
Some(data) => {
355+
if let Some(data) = opt_data {
356+
if !data.is_empty() {
358357
unsafe {
359358
self.ffi_gl_.TexImage2D(target, level, internal_format, width, height, border, format, ty,
360359
data.as_ptr() as *const GLvoid);
361360
}
361+
return;
362362
}
363-
None => {
364-
unsafe {
365-
self.ffi_gl_.TexImage2D(target, level, internal_format, width, height, border, format, ty,
366-
ptr::null());
367-
}
368-
}
363+
}
364+
unsafe {
365+
self.ffi_gl_.TexImage2D(target, level, internal_format, width, height, border, format, ty,
366+
ptr::null());
369367
}
370368
}
371369

src/gles_fns.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,6 @@ impl Gl for GlesFns {
320320
}
321321
}
322322

323-
// FIXME: Does not verify buffer size -- unsafe!
324323
fn tex_image_2d(&self,
325324
target: GLenum,
326325
level: GLint,
@@ -331,19 +330,18 @@ impl Gl for GlesFns {
331330
format: GLenum,
332331
ty: GLenum,
333332
opt_data: Option<&[u8]>) {
334-
match opt_data {
335-
Some(data) => {
333+
if let Some(data) = opt_data {
334+
if !data.is_empty() {
336335
unsafe {
337336
self.ffi_gl_.TexImage2D(target, level, internal_format, width, height, border, format, ty,
338337
data.as_ptr() as *const GLvoid);
339338
}
339+
return;
340340
}
341-
None => {
342-
unsafe {
343-
self.ffi_gl_.TexImage2D(target, level, internal_format, width, height, border, format, ty,
344-
ptr::null());
345-
}
346-
}
341+
}
342+
unsafe {
343+
self.ffi_gl_.TexImage2D(target, level, internal_format, width, height, border, format, ty,
344+
ptr::null());
347345
}
348346
}
349347

0 commit comments

Comments
 (0)