From eb8d64f52b2b3de313cca993fa59f57b8ab0003b Mon Sep 17 00:00:00 2001 From: Mihai Tudor Panu Date: Thu, 11 Oct 2018 14:53:42 -0700 Subject: [PATCH] bh17xx: use snprintf over sprintf Fixes potential unsafe usage of sprintf Signed-off-by: Mihai Tudor Panu --- src/bh1749/bh1749.c | 10 +++++----- src/bh1792/bh1792.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/bh1749/bh1749.c b/src/bh1749/bh1749.c index 7dc72caa..87987fa1 100755 --- a/src/bh1749/bh1749.c +++ b/src/bh1749/bh1749.c @@ -686,17 +686,17 @@ upm_result_t bh1749_registers_dump(bh1749_context dev, char *dump) if(bh1749_read_registers(dev, BH1749_SYSTEM_CONTROL, reg_values, len) != UPM_SUCCESS) return UPM_ERROR_OPERATION_FAILED; - count += sprintf(dump, "0x40 "); + count += snprintf(dump, 6, "0x40 "); for(int i = 0; i < len; i++) - count += sprintf(dump + count, "%02X ", reg_values[i]); - sprintf(dump + count - 1, "\n"); + count += snprintf(dump + count, 4, "%02X ", reg_values[i]); + snprintf(dump + count - 1, 3, "\n"); len = 6; if(bh1749_read_registers(dev, BH1749_INTERRUPT, reg_values, len) != UPM_SUCCESS) return UPM_ERROR_OPERATION_FAILED; - count += sprintf(dump + count, "0x60 "); + count += snprintf(dump + count, 6, "0x60 "); for(int i = 0; i < len; i++) - count += sprintf(dump + count, "%02X ", reg_values[i]); + count += snprintf(dump + count, 4, "%02X ", reg_values[i]); return UPM_SUCCESS; } diff --git a/src/bh1792/bh1792.c b/src/bh1792/bh1792.c index 810fb5f0..dfe88893 100755 --- a/src/bh1792/bh1792.c +++ b/src/bh1792/bh1792.c @@ -873,17 +873,17 @@ upm_result_t bh1792_registers_dump(bh1792_context dev, char *dump) if(bh1792_read_registers(dev, BH1792_MEAS_CONTROL1, reg_values, len) != UPM_SUCCESS) return UPM_ERROR_OPERATION_FAILED; - count += sprintf(dump, "0x41 "); + count += snprintf(dump, 6, "0x41 "); for(int i = 0; i < len; i++) - count += sprintf(dump + count, "%02X ", reg_values[i]); - sprintf(dump + count - 1, "\n"); + count += snprintf(dump + count, 4, "%02X ", reg_values[i]); + snprintf(dump + count - 1, 3, "\n"); len = 1; if(bh1792_read_registers(dev, BH1792_FIFO_LEV, reg_values, len) != UPM_SUCCESS) return UPM_ERROR_OPERATION_FAILED; - count += sprintf(dump + count, "0x4B "); + count += snprintf(dump + count, 6, "0x4B "); for(int i = 0; i < len; i++) - count += sprintf(dump + count, "%02X ", reg_values[i]); + count += snprintf(dump + count, 4, "%02X ", reg_values[i]); return UPM_SUCCESS; }