mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-11-04 13:29:51 -05:00
add_shm_format: check wl_array_add return value before deref
In wl_display_add_shm_format(), check the return value from wl_array_add() before dereferencing it and assigning it a value. Return the resulting pointer back to the caller. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
This commit is contained in:
parent
02952d040c
commit
32b2baaf51
2 changed files with 11 additions and 5 deletions
|
|
@ -1317,25 +1317,31 @@ wl_display_remove_global(struct wl_display *display, struct wl_global *global)
|
||||||
*
|
*
|
||||||
* \param display The display object
|
* \param display The display object
|
||||||
* \param format The wl_shm pixel format to advertise
|
* \param format The wl_shm pixel format to advertise
|
||||||
|
* \return A pointer to the wl_shm format that was added to the list
|
||||||
|
* or NULL if adding it to the list failed.
|
||||||
*
|
*
|
||||||
* Add the specified wl_shm format to the list of formats the wl_shm
|
* Add the specified wl_shm format to the list of formats the wl_shm
|
||||||
* object advertises when a client binds to it. Adding a format to
|
* object advertises when a client binds to it. Adding a format to
|
||||||
* the list means that clients will know that the compositor supports
|
* the list means that clients will know that the compositor supports
|
||||||
* this format and may use it for creating wl_shm buffers. The
|
* this format and may use it for creating wl_shm buffers. The
|
||||||
* compositor must be able to handle the pixel format when a client
|
* compositor must be able to handle the pixel format when a client
|
||||||
|
* requests it.
|
||||||
*
|
*
|
||||||
* The compositor by default supports WL_SHM_FORMAT_ARGB8888 and
|
* The compositor by default supports WL_SHM_FORMAT_ARGB8888 and
|
||||||
* WL_SHM_FORMAT_XRGB8888.
|
* WL_SHM_FORMAT_XRGB8888.
|
||||||
*
|
*
|
||||||
* \memberof wl_display
|
* \memberof wl_display
|
||||||
*/
|
*/
|
||||||
WL_EXPORT void
|
WL_EXPORT uint32_t *
|
||||||
wl_display_add_shm_format(struct wl_display *display, uint32_t format)
|
wl_display_add_shm_format(struct wl_display *display, uint32_t format)
|
||||||
{
|
{
|
||||||
uint32_t *p;
|
uint32_t *p = NULL;
|
||||||
|
|
||||||
p = wl_array_add(&display->additional_shm_formats, sizeof *p);
|
p = wl_array_add(&display->additional_shm_formats, sizeof *p);
|
||||||
|
|
||||||
|
if (p != NULL)
|
||||||
*p = format;
|
*p = format;
|
||||||
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -439,7 +439,7 @@ wl_shm_buffer_get_height(struct wl_shm_buffer *buffer);
|
||||||
int
|
int
|
||||||
wl_display_init_shm(struct wl_display *display);
|
wl_display_init_shm(struct wl_display *display);
|
||||||
|
|
||||||
void
|
uint32_t *
|
||||||
wl_display_add_shm_format(struct wl_display *display, uint32_t format);
|
wl_display_add_shm_format(struct wl_display *display, uint32_t format);
|
||||||
|
|
||||||
struct wl_shm_buffer *
|
struct wl_shm_buffer *
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue