[syslinux:master] gpllib: fix sizeof(char *) misuse
syslinux-bot for Jonathan Boeing
jonathan.n.boeing at gmail.com
Sat May 16 10:00:11 PDT 2015
Commit-ID: 1361dd215ff3d303c8ae9e7598ef3ef91bd21d0a
Gitweb: http://www.syslinux.org/commit/1361dd215ff3d303c8ae9e7598ef3ef91bd21d0a
Author: Jonathan Boeing <jonathan.n.boeing at gmail.com>
AuthorDate: Mon, 9 Feb 2015 20:01:36 -0700
Committer: Gene Cumm <gene.cumm at gmail.com>
CommitDate: Sun, 3 May 2015 10:49:51 -0400
gpllib: fix sizeof(char *) misuse
The code was passing sizeof(char *) - not the length of the buffer - to
strlcpy and snprintf. Change the function to take the length of the
buffer as a parameter.
Fixes the warning: argument to 'sizeof' in 'snprintf' call is the same
expression as the destination; did you mean to provide an explicit
length?
Signed-off-by: Jonathan Boeing <jonathan.n.boeing at gmail.com>
---
com32/gpllib/dmi/dmi.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/com32/gpllib/dmi/dmi.c b/com32/gpllib/dmi/dmi.c
index ef84e1e..5a25b41 100644
--- a/com32/gpllib/dmi/dmi.c
+++ b/com32/gpllib/dmi/dmi.c
@@ -100,20 +100,20 @@ static const char *dmi_system_reset_boot_option(uint8_t code)
return out_of_spec;
}
-static void dmi_system_reset_count(uint16_t code, char *array)
+static void dmi_system_reset_count(uint16_t code, char *array, size_t len)
{
if (code == 0xFFFF)
- strlcpy(array, "Unknown", sizeof array);
+ strlcpy(array, "Unknown", len);
else
- snprintf(array, sizeof array, "%u", code);
+ snprintf(array, len, "%u", code);
}
-static void dmi_system_reset_timer(uint16_t code, char *array)
+static void dmi_system_reset_timer(uint16_t code, char *array, size_t len)
{
if (code == 0xFFFF)
- strlcpy(array, "Unknown", sizeof array);
+ strlcpy(array, "Unknown", len);
else
- snprintf(array, sizeof array, "%u min", code);
+ snprintf(array, len, "%u min", code);
}
/*
@@ -947,13 +947,17 @@ void dmi_decode(struct dmi_header *h, uint16_t ver, s_dmi * dmi)
dmi_system_reset_boot_option((data[0x04] >> 3) & 0x3),
sizeof dmi->system.system_reset.boot_option_on_limit);
dmi_system_reset_count(WORD(data + 0x05),
- dmi->system.system_reset.reset_count);
+ dmi->system.system_reset.reset_count,
+ sizeof(dmi->system.system_reset.reset_count));
dmi_system_reset_count(WORD(data + 0x07),
- dmi->system.system_reset.reset_limit);
+ dmi->system.system_reset.reset_limit,
+ sizeof(dmi->system.system_reset.reset_limit));
dmi_system_reset_timer(WORD(data + 0x09),
- dmi->system.system_reset.timer_interval);
+ dmi->system.system_reset.timer_interval,
+ sizeof(dmi->system.system_reset.timer_interval));
dmi_system_reset_timer(WORD(data + 0x0B),
- dmi->system.system_reset.timeout);
+ dmi->system.system_reset.timeout,
+ sizeof(dmi->system.system_reset.timeout));
break;
case 24: /* 3.3.25 Hardware Security */
if (h->length < 0x05)
More information about the Syslinux-commits
mailing list