Callers may check errno when wl_map_insert_* functions return an
error (since [1]). Make sure it's always set to a meaningful value
when returning an error, otherwise callers might end up checking an
errno coming from a completely different function.
[1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/205
Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes:
b19488c7154b ("util: Limit size of wl_map")
* better make it a NULL so wl_map_for_each doesn't
* dereference it later. */
entry->data = NULL;
+ errno = ENOSPC;
return 0;
}
entry->data = data;
i -= WL_SERVER_ID_START;
}
- if (i > WL_MAP_MAX_OBJECTS)
+ if (i > WL_MAP_MAX_OBJECTS) {
+ errno = ENOSPC;
return -1;
+ }
count = entries->size / sizeof *start;
if (count < i) {
i -= WL_SERVER_ID_START;
}
- if (i > WL_MAP_MAX_OBJECTS)
+ if (i > WL_MAP_MAX_OBJECTS) {
+ errno = ENOSPC;
return -1;
+ }
count = entries->size / sizeof *start;
if (count < i) {