Skip to content

Conversation

@derklaro
Copy link
Member

Motivation

It's left to the implementations of malloc if a malloc(0) returns a NULL pointer or a non-null pointer. However, our validation logic checks if a NULL pointer is returned and treats it as an OOM.

Modification

Always pass at least 1 to malloc, ensuring that we only get a NULL pointer if we're really out of memory.

Result

No more OOM errors thrown because of malloc(0) calls returning a NULL pointer.

@derklaro derklaro added this to the 4.0.0-RC16 milestone Dec 16, 2025
@derklaro derklaro requested a review from 0utplay December 16, 2025 22:50
@derklaro derklaro self-assigned this Dec 16, 2025
@derklaro derklaro added v: 4.X This pull should be included in the 4.0 release in: driver An issue/pull request releated to the driver module code t: fix A pull request introducing a fix for a bug. labels Dec 16, 2025
@derklaro derklaro changed the title fix: avoid OOM caused by NULL pointer returned by malloc(0) fix: avoid OOM caused by NULL pointer returned from malloc(0) Dec 16, 2025
@github-actions
Copy link

github-actions bot commented Dec 16, 2025

Test Results

 56 files  ±0   56 suites  ±0   3m 4s ⏱️ -56s
571 tests ±0  571 ✅ ±0  0 💤 ±0  0 ❌ ±0 
938 runs  ±0  938 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit b640fc3. ± Comparison against base commit d9a73c3.

This pull request removes 36 and adds 36 tests. Note that renamed tests count towards both.
eu.cloudnetservice.driver.impl.document.DocumentSerialisationTest ‑ [4] {"b":1,"s":2,"i":3,"l":4,"f":5.0,"d":6.0,"c":"/","string":"Hello, World!","bol":true,"cloud":["Ben?","Yes","No","HoHoHoHo"],"world":{"this":"is","insane":"!","hello":"world"}}, PRETTY
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [14] 2025-12-14
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [23] 18:15:17.753323116
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [28] 18:15:17.753436718Z
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [29] 18:15:17.753456054Z
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [30] 18:15:17.753490859+05:00
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [31] 18:15:17.753520484-03:00
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [34] 2025-12-14T18:15:17.753666446
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [39] 2025-12-14T18:15:17.753850839Z
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [4] 2025-12-14T18:15:17.735681777Z
…
eu.cloudnetservice.driver.impl.document.DocumentSerialisationTest ‑ [4] {"b":1,"s":2,"i":3,"l":4,"f":5.0,"d":6.0,"c":"/","string":"Hello, World!","bol":true,"cloud":["Ben?","Yes","No","HoHoHoHo"],"world":{"insane":"!","this":"is","hello":"world"}}, PRETTY
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [14] 2025-12-17
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [23] 13:46:55.296803196
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [28] 13:46:55.296941373Z
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [29] 13:46:55.296965918Z
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [30] 13:46:55.297003508+05:00
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [31] 13:46:55.297035909-03:00
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [34] 2025-12-17T13:46:55.297169988
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [39] 2025-12-17T13:46:55.297296243Z
eu.cloudnetservice.driver.impl.document.gson.JavaTimeSerializerTest ‑ [4] 2025-12-17T13:46:55.286976105Z
…

♻️ This comment has been updated with latest results.

@derklaro derklaro merged commit a6493fa into nightly Dec 19, 2025
5 checks passed
@derklaro derklaro deleted the prevent-malloc-null-pointer-oom branch December 19, 2025 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in: driver An issue/pull request releated to the driver module code t: fix A pull request introducing a fix for a bug. v: 4.X This pull should be included in the 4.0 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants