Bad assert in queue.c xQueueGenericCreate

hairymnstr wrote on Thursday, September 10, 2015:

In queue.c from FreeRTOS 8.2.2 the xQueueGenericCreate function ends (see line 383 on) with:

configASSERT( xReturn );

return xReturn;

so it’s impossible for the function to return NULL without triggering the assertion. However the documentation (http://www.freertos.org/a00116.html) states that xQueueCreate can return 0 to indicate failure.

If assertions were turned off this function would operate as documented, so it seems like this assert should not be present.

rtel wrote on Thursday, September 10, 2015:

Its gone! [but the change is not checked in yet]

If you have a malloc failed hook defined then that will get called anyway, so it was perhaps a little obsolete.

hairymnstr wrote on Wednesday, March 23, 2016:

Looks like this change never got checked in, I’m still seeing this assert in 8.2.3 and 9.0.0rc1

rtel wrote on Wednesday, March 23, 2016:

Look at the definitions of xQueueGenericCreate() and
xQueueGenericCreateStatic() in the head revision (lines 384 and 332 at
the time of posting) - the assert was removed, but after rc1. Since rc1
some simplification of the static allocation code has been made.

https://sourceforge.net/p/freertos/code/HEAD/tree/trunk/FreeRTOS/Source/queue.c

hairymnstr wrote on Wednesday, March 23, 2016:

Excellent, thanks. Another reason to look forward to 9.0.0!