No just static and stack allocations (like char[ ]'s which is actually what are use under the hood).
Edit.
Ignore the rubbish comments below about the SafeString class, cSF( ) etc, doing malloc/free check. They are only used in the SafeString library's SerialComs class.
createSafeString(name,size), or cSF(name,size), is a macro that expands to code like
char name_SAFEBUFFER[size+1];
SafeString name(sizeof(name_SAFEBUFFER),name_SAFEBUFFER, ... );
so no place for memory checks before allocating the char[ ] either statically or on the stack.
However for stack allocations, the SafeString code does check there is sufficient available memory by executing malloc/free, in back to back pairs, to check there is actually free RAM available for the stack to use the will not overwrite the current heap. If the malloc fails, SafeString assumes there will not be enough stack space for the SafeString and sets the capacity to zero which will then provoke SafeString error messages/flags when the SafeString is used.
Once the free memory has been checked (and that memory immediately freed) then the char[ ] is allocated on the stack for use by SafeString internally. No dynamic memory used.