mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-04-23 21:30:39 +02:00
_dbus_listen_tcp_socket: Don't rely on dbus_realloc setting errno
dbus_realloc() doesn't guarantee to set errno (if it did, the only reasonable thing it could set it to would be ENOMEM). In particular, faking OOM conditions doesn't set it. This can cause an assertion failure when OOM tests assert that the only error that can validly occur is DBUS_ERROR_NO_MEMORY. Signed-off-by: Simon McVittie <smcv@collabora.com> Reviewed-by: Philip Withnall <withnall@endlessm.com> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=89104
This commit is contained in:
parent
d48d31cc21
commit
9ded6907e6
1 changed files with 2 additions and 4 deletions
|
|
@ -1581,11 +1581,9 @@ _dbus_listen_tcp_socket (const char *host,
|
|||
newlisten_fd = dbus_realloc(listen_fd, sizeof(DBusSocket)*(nlisten_fd+1));
|
||||
if (!newlisten_fd)
|
||||
{
|
||||
saved_errno = errno;
|
||||
_dbus_close (fd, NULL);
|
||||
dbus_set_error (error, _dbus_error_from_errno (saved_errno),
|
||||
"Failed to allocate file handle array: %s",
|
||||
_dbus_strerror (saved_errno));
|
||||
dbus_set_error (error, DBUS_ERROR_NO_MEMORY,
|
||||
"Failed to allocate file handle array");
|
||||
goto failed;
|
||||
}
|
||||
listen_fd = newlisten_fd;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue