From 171e65f73f1f0ebae3bbd2149b1dad824435222b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 27 Sep 2022 12:26:33 +0200 Subject: [PATCH] libfprint: Use g_memdup2 everywhere It's just safer when available. --- libfprint/drivers/elan.c | 2 +- libfprint/drivers/elanmoc/elanmoc.c | 2 +- libfprint/drivers/uru4000.c | 2 +- libfprint/drivers/vfs301_proto.c | 2 +- libfprint/fp-image.c | 3 ++- libfprint/fpi-byte-reader.c | 2 +- libfprint/fpi-byte-reader.h | 3 ++- libfprint/fpi-byte-writer.c | 2 +- libfprint/fpi-print.c | 2 +- 9 files changed, 11 insertions(+), 9 deletions(-) diff --git a/libfprint/drivers/elan.c b/libfprint/drivers/elan.c index 51daac7d..1b5d1e70 100644 --- a/libfprint/drivers/elan.c +++ b/libfprint/drivers/elan.c @@ -357,7 +357,7 @@ elan_cmd_cb (FpiUsbTransfer *transfer, FpDevice *dev, if (transfer->endpoint & FPI_USB_ENDPOINT_IN) { /* just finished receiving */ - self->last_read = g_memdup (transfer->buffer, transfer->actual_length); + self->last_read = g_memdup2 (transfer->buffer, transfer->actual_length); elan_cmd_done (ssm); } else diff --git a/libfprint/drivers/elanmoc/elanmoc.c b/libfprint/drivers/elanmoc/elanmoc.c index 748a9fbe..471189fd 100644 --- a/libfprint/drivers/elanmoc/elanmoc.c +++ b/libfprint/drivers/elanmoc/elanmoc.c @@ -509,7 +509,7 @@ create_print_from_response (FpiDeviceElanmoc *self, return NULL; } - userid = g_memdup (&buffer_in[5], userid_len); + userid = g_memdup2 (&buffer_in[5], userid_len); userid_safe = g_strndup ((const char *) &buffer_in[5], userid_len); print = fp_print_new (FP_DEVICE (self)); uid = g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, userid, userid_len, 1); diff --git a/libfprint/drivers/uru4000.c b/libfprint/drivers/uru4000.c index 138673c8..dbb62132 100644 --- a/libfprint/drivers/uru4000.c +++ b/libfprint/drivers/uru4000.c @@ -551,7 +551,7 @@ image_transfer_cb (FpiUsbTransfer *transfer, FpDevice *dev, } else { - self->img_data = g_memdup (transfer->buffer, sizeof (struct uru4k_image)); + self->img_data = g_memdup2 (transfer->buffer, sizeof (struct uru4k_image)); self->img_data_actual_length = transfer->actual_length; fpi_ssm_next_state (ssm); } diff --git a/libfprint/drivers/vfs301_proto.c b/libfprint/drivers/vfs301_proto.c index 4431efd6..122a889a 100644 --- a/libfprint/drivers/vfs301_proto.c +++ b/libfprint/drivers/vfs301_proto.c @@ -432,7 +432,7 @@ img_process_data (int first_block, FpDeviceVfs301 *dev, const guint8 *buf, int l usb_send (dev, data, len, NULL); \ } -#define RAW_DATA(x) g_memdup (x, sizeof (x)), sizeof (x) +#define RAW_DATA(x) g_memdup2 (x, sizeof (x)), sizeof (x) #define IS_VFS301_FP_SEQ_START(b) ((b[0] == 0x01) && (b[1] == 0xfe)) diff --git a/libfprint/fp-image.c b/libfprint/fp-image.c index 51732c1b..f19c5dfd 100644 --- a/libfprint/fp-image.c +++ b/libfprint/fp-image.c @@ -20,6 +20,7 @@ #define FP_COMPONENT "image" +#include "fpi-compat.h" #include "fpi-image.h" #include "fpi-log.h" @@ -295,7 +296,7 @@ fp_image_detect_minutiae_thread_func (GTask *task, data->flags &= ~(FPI_IMAGE_H_FLIPPED | FPI_IMAGE_V_FLIPPED | FPI_IMAGE_COLORS_INVERTED); - lfsparms = g_memdup (&g_lfsparms_V2, sizeof (LFSPARMS)); + lfsparms = g_memdup2 (&g_lfsparms_V2, sizeof (LFSPARMS)); lfsparms->remove_perimeter_pts = data->flags & FPI_IMAGE_PARTIAL ? TRUE : FALSE; timer = g_timer_new (); diff --git a/libfprint/fpi-byte-reader.c b/libfprint/fpi-byte-reader.c index aecbe5bc..23bc5e7c 100644 --- a/libfprint/fpi-byte-reader.c +++ b/libfprint/fpi-byte-reader.c @@ -1181,7 +1181,7 @@ fpi_byte_reader_dup_string_utf##bits (FpiByteReader * reader, type ** str) \ *str = NULL; \ return FALSE; \ } \ - *str = g_memdup (reader->data + reader->byte, size); \ + *str = g_memdup2 (reader->data + reader->byte, size); \ reader->byte += size; \ return TRUE; \ } diff --git a/libfprint/fpi-byte-reader.h b/libfprint/fpi-byte-reader.h index 4a14ec8d..7a89a286 100644 --- a/libfprint/fpi-byte-reader.h +++ b/libfprint/fpi-byte-reader.h @@ -22,6 +22,7 @@ #pragma once #include +#include "fpi-compat.h" #include "fpi-byte-utils.h" G_BEGIN_DECLS @@ -360,7 +361,7 @@ static inline guint8 * fpi_byte_reader_dup_data_unchecked (FpiByteReader * reader, guint size) { gconstpointer data = fpi_byte_reader_get_data_unchecked (reader, size); - return (guint8 *) g_memdup (data, size); + return (guint8 *) g_memdup2 (data, size); } /* Unchecked variants that should not be used */ diff --git a/libfprint/fpi-byte-writer.c b/libfprint/fpi-byte-writer.c index 4ee67ff5..73e42cbc 100644 --- a/libfprint/fpi-byte-writer.c +++ b/libfprint/fpi-byte-writer.c @@ -211,7 +211,7 @@ fpi_byte_writer_reset_and_get_data (FpiByteWriter * writer) data = (guint8 *) writer->parent.data; if (!writer->owned) - data = g_memdup (data, writer->parent.size); + data = g_memdup2 (data, writer->parent.size); writer->parent.data = NULL; fpi_byte_writer_reset (writer); diff --git a/libfprint/fpi-print.c b/libfprint/fpi-print.c index 16877b8b..00289b4e 100644 --- a/libfprint/fpi-print.c +++ b/libfprint/fpi-print.c @@ -50,7 +50,7 @@ fpi_print_add_print (FpPrint *print, FpPrint *add) g_return_if_fail (add->type == FPI_PRINT_NBIS); g_assert (add->prints->len == 1); - g_ptr_array_add (print->prints, g_memdup (add->prints->pdata[0], sizeof (struct xyt_struct))); + g_ptr_array_add (print->prints, g_memdup2 (add->prints->pdata[0], sizeof (struct xyt_struct))); } /**