eina_slstr: Fix leak in an error case

This function takes ownership of the incoming strbuf
This commit is contained in:
Jean-Philippe Andre 2017-07-21 15:47:10 +09:00
parent 999dbd9764
commit b290cb5de0
1 changed files with 5 additions and 1 deletions

View File

@ -172,7 +172,7 @@ eina_slstr_strbuf_new(Eina_Strbuf *string)
if (!string) return NULL;
fq = _slstr_freeq_get(EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(fq, NULL);
EINA_SAFETY_ON_NULL_GOTO(fq, error);
str = eina_strbuf_release(string);
#ifdef DEBUG
@ -180,6 +180,10 @@ eina_slstr_strbuf_new(Eina_Strbuf *string)
#endif
eina_freeq_ptr_add(fq, str, free, len);
return str;
error:
eina_strbuf_free(string);
return NULL;
}
EAPI Eina_Slstr *