From 2661e4414414e7c390f6fea20c258a83472afb82 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 20 May 2021 14:07:46 +0100 Subject: Don't use a field before setting it We are using the data->len field in our g_memdup() call before we're actually setting it; since the data structure is zero-filled, it means we're not copying the buffer at all. --- libmediaart/extract.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmediaart/extract.c b/libmediaart/extract.c index d505285..bef8c0d 100644 --- a/libmediaart/extract.c +++ b/libmediaart/extract.c @@ -1366,8 +1366,8 @@ process_data_new (MediaArtType type, data->uri = g_strdup (uri); - data->buffer = g_memdup (buffer, data->len); data->len = len; + data->buffer = g_memdup (buffer, data->len); data->mime = g_strdup (mime); data->artist = g_strdup (artist); -- cgit v1.2.1 From 0a96082a92985f527fc53b1c6606086abaac5a96 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 20 May 2021 14:10:06 +0100 Subject: Use g_memdup2() with newer versions of GLib The g_memdup() call was deprecated in GLib 2.68 because it used an unsigned integer for the buffer size argument. The g_memdup2() function, which uses a gsize, was introduced in the same version. --- libmediaart/extract.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libmediaart/extract.c b/libmediaart/extract.c index bef8c0d..e188931 100644 --- a/libmediaart/extract.c +++ b/libmediaart/extract.c @@ -1367,7 +1367,11 @@ process_data_new (MediaArtType type, data->uri = g_strdup (uri); data->len = len; +#if GLIB_CHECK_VERSION (2, 68, 0) + data->buffer = g_memdup2 (buffer, data->len); +#else data->buffer = g_memdup (buffer, data->len); +#endif data->mime = g_strdup (mime); data->artist = g_strdup (artist); -- cgit v1.2.1