coverity-model: make g_free a synonym of free
Recently, Coverity has started complaining about using g_free() to free memory areas allocated by GLib functions not included in model.c, such as g_strfreev. This unfortunately goes against the GLib documentation, which suggests that g_malloc() should be matched with g_free() and plain malloc() with free(); since GLib 2.46 however g_malloc() is hardcoded to always use the system malloc implementation, and g_free is just "free" plus a tracepoint. Therefore, this should not cause any problem in practice. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d4b3d152ee
commit
243a545bff
@ -186,7 +186,7 @@ void *g_malloc_n(size_t nmemb, size_t size)
|
||||
sz = nmemb * size;
|
||||
ptr = __coverity_alloc__(sz);
|
||||
__coverity_mark_as_uninitialized_buffer__(ptr);
|
||||
__coverity_mark_as_afm_allocated__(ptr, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(ptr, AFM_free);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
@ -200,7 +200,7 @@ void *g_malloc0_n(size_t nmemb, size_t size)
|
||||
sz = nmemb * size;
|
||||
ptr = __coverity_alloc__(sz);
|
||||
__coverity_writeall0__(ptr);
|
||||
__coverity_mark_as_afm_allocated__(ptr, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(ptr, AFM_free);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
@ -218,14 +218,14 @@ void *g_realloc_n(void *ptr, size_t nmemb, size_t size)
|
||||
* model that. See Coverity's realloc() model
|
||||
*/
|
||||
__coverity_writeall__(ptr);
|
||||
__coverity_mark_as_afm_allocated__(ptr, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(ptr, AFM_free);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void g_free(void *ptr)
|
||||
{
|
||||
__coverity_free__(ptr);
|
||||
__coverity_mark_as_afm_freed__(ptr, "g_free");
|
||||
__coverity_mark_as_afm_freed__(ptr, AFM_free);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -328,7 +328,7 @@ char *g_strdup(const char *s)
|
||||
__coverity_string_null_sink__(s);
|
||||
__coverity_string_size_sink__(s);
|
||||
dup = __coverity_alloc_nosize__();
|
||||
__coverity_mark_as_afm_allocated__(dup, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(dup, AFM_free);
|
||||
for (i = 0; (dup[i] = s[i]); i++) ;
|
||||
return dup;
|
||||
}
|
||||
@ -362,7 +362,7 @@ char *g_strdup_printf(const char *format, ...)
|
||||
|
||||
s = __coverity_alloc_nosize__();
|
||||
__coverity_writeall__(s);
|
||||
__coverity_mark_as_afm_allocated__(s, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(s, AFM_free);
|
||||
return s;
|
||||
}
|
||||
|
||||
@ -375,11 +375,10 @@ char *g_strdup_vprintf(const char *format, va_list ap)
|
||||
__coverity_string_size_sink__(format);
|
||||
|
||||
ch = *format;
|
||||
ch = *(char *)ap;
|
||||
|
||||
s = __coverity_alloc_nosize__();
|
||||
__coverity_writeall__(s);
|
||||
__coverity_mark_as_afm_allocated__(s, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(s, AFM_free);
|
||||
|
||||
return len;
|
||||
}
|
||||
@ -395,7 +394,7 @@ char *g_strconcat(const char *s, ...)
|
||||
|
||||
s = __coverity_alloc_nosize__();
|
||||
__coverity_writeall__(s);
|
||||
__coverity_mark_as_afm_allocated__(s, "g_free");
|
||||
__coverity_mark_as_afm_allocated__(s, AFM_free);
|
||||
return s;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user