Skip to content

Commit 093645c

Browse files
macpijanaperezdc
authored andcommitted
renderer-backend-egl.c: check interface pointer before usage
The interface is used without checking for a valid address. In some cases it may lead to NULL dereference and segmentation fault. This was the case with the wpebackend-fdo which was returning nullptr when requesting for the _wpe_renderer_backend_egl_offscreen_target_interface. Igalia/meta-webkit#31 (comment) Signed-off-by: Maciej Pijanowski <[email protected]>
1 parent 4be4c7d commit 093645c

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/renderer-backend-egl.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ wpe_renderer_backend_egl_create(int host_fd)
3939
return 0;
4040

4141
backend->interface = wpe_load_object("_wpe_renderer_backend_egl_interface");
42+
if (!backend->interface)
43+
return 0;
44+
4245
backend->interface_data = backend->interface->create(host_fd);
4346

4447
return backend;
@@ -70,6 +73,9 @@ wpe_renderer_backend_egl_target_create(int host_fd)
7073
return 0;
7174

7275
target->interface = wpe_load_object("_wpe_renderer_backend_egl_target_interface");
76+
if (!target->interface)
77+
return 0;
78+
7379
target->interface_data = target->interface->create(target, host_fd);
7480

7581
return target;
@@ -140,6 +146,9 @@ wpe_renderer_backend_egl_offscreen_target_create()
140146
return 0;
141147

142148
target->interface = wpe_load_object("_wpe_renderer_backend_egl_offscreen_target_interface");
149+
if (!target->interface)
150+
return 0;
151+
143152
target->interface_data = target->interface->create();
144153

145154
return target;

0 commit comments

Comments
 (0)