diff options
author | Stephen Barber <smbarber@chromium.org> | 2015-06-19 12:56:34 -0700 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-06-23 08:20:59 +0200 |
commit | 31f8a2fe74e4d622bbd1dbf5a603f739ccf71eb7 (patch) | |
tree | 6ac4c3a33d3f66a00b69e76576f7321fe36c1e06 /src | |
parent | f4227c4b01840c092b5431cbe6d92de282fe5628 (diff) |
chromeos: vpd: properly null terminate values
VPD strings are not null terminated, so we can't use strcpy
on them in cros_vpd_gets.
BUG=none
BRANCH=none
TEST=add serial_number followed by cam_calib_data to VPD on smaug;
make sure that smaug boots and serial number matches exactly (no garbage)
Change-Id: Id72885517b3d0b1934ba329c1ef0d89a67bd2bb4
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 56bbe6688b11043360a046a250d1ea93db4d9f0e
Original-Change-Id: I811dfc2f0830a91410eb69961a6565080ff78267
Original-Signed-off-by: Stephen Barber <smbarber@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/280836
Original-Reviewed-by: David Hendricks <dhendrix@chromium.org>
Original-Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-on: http://review.coreboot.org/10627
Tested-by: build bot (Jenkins)
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/vendorcode/google/chromeos/cros_vpd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vendorcode/google/chromeos/cros_vpd.c b/src/vendorcode/google/chromeos/cros_vpd.c index fed1d82344..f9aec88f36 100644 --- a/src/vendorcode/google/chromeos/cros_vpd.c +++ b/src/vendorcode/google/chromeos/cros_vpd.c @@ -132,7 +132,8 @@ char *cros_vpd_gets(const char *key, char *buffer, int size) return NULL; if (size > (string_size + 1)) { - strcpy(buffer, string_address); + memcpy(buffer, string_address, string_size); + buffer[string_size] = '\0'; } else { memcpy(buffer, string_address, size - 1); buffer[size - 1] = '\0'; |