Replace improper use of g_malloc(0) with g_new0

Completely remove use of g_malloc (without zeroing of the allocated
memory) and forbid further use.

Replace use of g_malloc0 in cases where the variable holding the pointer
has proper type.

In all of the above cases we can use g_new0 instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2024-10-25 09:41:21 +02:00
parent 354a3d2be4
commit bb4bd9d31f
3 changed files with 6 additions and 6 deletions

View File

@ -92,8 +92,8 @@ sc_prohibit_raw_virclassnew:
# Avoid raw malloc and free, except in documentation comments. # Avoid raw malloc and free, except in documentation comments.
sc_prohibit_raw_allocation: sc_prohibit_raw_allocation:
@prohibit='^.[^*].*\<((m|c|re)alloc|free) *\([^)]' \ @prohibit='^.[^*].*\<((m|c|re)alloc|free|g_malloc) *\([^)]' \
halt='use VIR_ macros from viralloc.h instead of malloc/free' \ halt='use g_new0/g_malloc0/g_free instead of malloc/free/g_malloc' \
$(_sc_search_regexp) $(_sc_search_regexp)
# Avoid functions that can lead to double-close bugs. # Avoid functions that can lead to double-close bugs.

View File

@ -414,7 +414,7 @@ virPCIVPDParseVPDLargeResourceFields(int vpdFileFd,
virPCIVPDResource *res) virPCIVPDResource *res)
{ {
/* A buffer of up to one resource record field size (plus a zero byte) is needed. */ /* A buffer of up to one resource record field size (plus a zero byte) is needed. */
g_autofree uint8_t *buf = g_malloc0(PCI_VPD_MAX_FIELD_SIZE + 1); g_autofree uint8_t *buf = g_new0(uint8_t, PCI_VPD_MAX_FIELD_SIZE + 1);
uint16_t fieldDataLen = 0, bytesToRead = 0; uint16_t fieldDataLen = 0, bytesToRead = 0;
uint16_t fieldPos = resPos; uint16_t fieldPos = resPos;
bool hasChecksum = false; bool hasChecksum = false;
@ -499,7 +499,7 @@ virPCIVPDParseVPDLargeResourceFields(int vpdFileFd,
break; break;
case VIR_PCI_VPD_RESOURCE_FIELD_VALUE_FORMAT_BINARY: case VIR_PCI_VPD_RESOURCE_FIELD_VALUE_FORMAT_BINARY:
fieldValue = g_malloc(fieldDataLen); fieldValue = g_new0(char, fieldDataLen);
memcpy(fieldValue, buf, fieldDataLen); memcpy(fieldValue, buf, fieldDataLen);
break; break;
@ -570,7 +570,7 @@ virPCIVPDParseVPDLargeResourceString(int vpdFileFd, uint16_t resPos,
g_autofree char *resValue = NULL; g_autofree char *resValue = NULL;
/* The resource value is not NULL-terminated so add one more byte. */ /* The resource value is not NULL-terminated so add one more byte. */
g_autofree char *buf = g_malloc0(resDataLen + 1); g_autofree char *buf = g_new0(char, resDataLen + 1);
if (virPCIVPDReadVPDBytes(vpdFileFd, (uint8_t *)buf, resDataLen, resPos, csum) < 0) if (virPCIVPDReadVPDBytes(vpdFileFd, (uint8_t *)buf, resDataLen, resPos, csum) < 0)
return -1; return -1;

View File

@ -166,7 +166,7 @@ dissect_xdr_opaque(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
gboolean rc; gboolean rc;
guint8 *val; guint8 *val;
val = g_malloc(size); val = g_new0(guint8, size);
start = xdr_getpos(xdrs); start = xdr_getpos(xdrs);
if ((rc = xdr_opaque(xdrs, (caddr_t)val, size))) { if ((rc = xdr_opaque(xdrs, (caddr_t)val, size))) {
gint len = xdr_getpos(xdrs) - start; gint len = xdr_getpos(xdrs) - start;