diff --git a/src/add-ons/kernel/network/stack/interfaces.cpp b/src/add-ons/kernel/network/stack/interfaces.cpp index f7f6a4dcf7..fb13c5cfca 100644 --- a/src/add-ons/kernel/network/stack/interfaces.cpp +++ b/src/add-ons/kernel/network/stack/interfaces.cpp @@ -409,8 +409,16 @@ InterfaceAddress::Prepare(sockaddr** _address, size_t size) sockaddr* address = *_address; - if (address == NULL || size > address->sa_len) - address = (sockaddr*)realloc(address, size); + if (address == NULL || size > address->sa_len) { + sockaddr* resized = (sockaddr*)realloc(address, size); + + if (resized == NULL) { + free(address); + return NULL; + } + + address = resized; + } address->sa_len = size;