# Custom functions not detected in SonarQube

**URL:** <https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575>\
**Category:** Writing rules\
**Tags:** cfamily, memory\
**Created:** [November 14, 2025, 10:10pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575 "2025-11-14T22:10:21Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 14, 2025, 10:10pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/1 "2025-11-14T22:10:21Z")

</div>

Hello, I am using a non-standard memory allocation function in C that is not being detected by SonarQube. Is there a way to configure SonarQube to detect our custom function and scan for memory leaks?

One work around I have tried is creating a wrapper with standard malloc/free name which does detect it.

Thanks,  
Emily

---

<div class="post-metadata">

**Author:** ![ganncamp](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/ganncamp/32/1261_2.png) [@ganncamp](https://community.sonarsource.com/u/ganncamp)\
**Post date:** [November 17, 2025, 3:23pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/2 "2025-11-17T15:23:24Z")

</div>

Hi Emily,

Welcome to the community and thanks for this report!

Could you provide a reproducer / example of this?

&nbsp;  
Thx,  
Ann

---

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 18, 2025, 4:46pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/3 "2025-11-18T16:46:27Z")

</div>

Thanks Ann,  
sure here is an example:

```c
int32_t custom_memory(uint8_t ** buffer, uint32_t size)
{
uint8_t *full_ptr; // Fully allocated memory with header
uint8_t *user_ptr; // Region of user allocated memory
uint32_t *size_ptr; // Points to word inside header to store original size
uint8_t *header;
uint32_t adjusted_size = size + HEADER_SIZE;

full_ptr = pvPortMalloc(adjusted_size);

if (full_ptr)
{
    user_ptr = full_ptr + HEADER_SIZE;

    // Fill the header bytes
    header = full_ptr;
    for(uint32_t i=0; i<HEADER_SIZE; ++i)
    {
        header[i] = HEADER_BYTE;
    }

    // Store the original size 8 bytes in
    size_ptr = (uint32_t *)(full_ptr + 8);
    *size_ptr = size;

    *buffer = user_ptr;
}
else
{
    *buffer = NULL;
    return -1;
}

if (buffer == NULL)
{
    return -1;
}

return 0;
}

```

---

<div class="post-metadata">

**Author:** ![ganncamp](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/ganncamp/32/1261_2.png) [@ganncamp](https://community.sonarsource.com/u/ganncamp)\
**Post date:** [November 18, 2025, 4:54pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/4 "2025-11-18T16:54:55Z")

</div>

Hi,

Thanks for the reproducer! I should have also asked you what version you’re (not) seeing this in.

&nbsp;  
Thx,  
Ann

---

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 18, 2025, 5:37pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/5 "2025-11-18T17:37:13Z")

</div>

Version **06.0F.02.5Arc3**

---

<div class="post-metadata">

**Author:** ![ganncamp](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/ganncamp/32/1261_2.png) [@ganncamp](https://community.sonarsource.com/u/ganncamp)\
**Post date:** [November 18, 2025, 5:39pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/6 "2025-11-18T17:39:00Z")

</div>

Hi,

I don’t recognize that number. Can you check the version number in your SonarQube page footer?

&nbsp;  
Thx,  
Ann

---

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 18, 2025, 5:55pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/7 "2025-11-18T17:55:01Z")

</div>

Ok the footer says: v2025.4.3 (113915)

---

<div class="post-metadata">

**Author:** ![ganncamp](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/ganncamp/32/1261_2.png) [@ganncamp](https://community.sonarsource.com/u/ganncamp)\
**Post date:** [November 18, 2025, 5:59pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/9 "2025-11-18T17:59:15Z")

</div>

Hi,

Thanks! I’ve flagged this for the language experts.

&nbsp;  
Ann

---

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 18, 2025, 6:00pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/10 "2025-11-18T18:00:51Z")

</div>

I’m mostly interested if SonarQube has the capability to configure our custom functions. This was something we were able to do with Klockwork, a static code analyzer, where we could define custom functions.

Looks like maybe I can write a SonarQube Server plugin?

---

<div class="post-metadata">

**Author:** ![ganncamp](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/ganncamp/32/1261_2.png) [@ganncamp](https://community.sonarsource.com/u/ganncamp)\
**Post date:** [November 18, 2025, 6:19pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/11 "2025-11-18T18:19:34Z")

</div>

Hi,

I can already tell you you can’t configure C analysis. But I’m flagging this for the experts to see if you shouldn’t _have_ to configure.

&nbsp;  
Ann

---

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 18, 2025, 8:05pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/12 "2025-11-18T20:05:28Z")

</div>

Ok great thanks Ann for your help

---

<div class="post-metadata">

**Author:** ![marco.b](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/marco.b/32/25371_2.png) [@marco.b](https://community.sonarsource.com/u/marco.b)\
**Post date:** [November 20, 2025, 2:19pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/16 "2025-11-20T14:19:52Z")

</div>

Hello @emily.kinne,

Thanks for reaching out and sharing your feedback.

Unfortunately, at this time, we don’t support ways to configure your analysis for this purpose. I’ve raised an internal ticket specifically for FreeRTOS, which I gather you were using.

We also have ideas to support custom allocating/deallocating functions using a system of function attributes, but ideally the user should not have to configure their analysis.

Marco

---

<div class="post-metadata">

**Author:** ![emily.kinne](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@emily.kinne](https://community.sonarsource.com/u/emily.kinne)\
**Post date:** [November 20, 2025, 3:40pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/21 "2025-11-20T15:40:15Z")

</div>

Yes our project uses FreeRTOS, thanks for the answer Marco.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/system/32/31083_2.png) [@system](https://community.sonarsource.com/u/system)\
**Post date:** [November 27, 2025, 7:16pm UTC](https://community.sonarsource.com/t/custom-functions-not-detected-in-sonarqube/152575/23 "2025-11-27T19:16:10Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
