aboutsummaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2016-09-01 15:46:47 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-09-02 15:33:54 +1000
commit7bf89d68b8dd3b12d4540e9901f9d5ed325cf94d (patch)
treebf8d1bdded8470f55ff52e8d625fdec72d1bed64 /external
parent0f1c75dbb52efddb5e37f343433223803163bcbb (diff)
downloadskiboot-7bf89d68b8dd3b12d4540e9901f9d5ed325cf94d.zip
skiboot-7bf89d68b8dd3b12d4540e9901f9d5ed325cf94d.tar.gz
skiboot-7bf89d68b8dd3b12d4540e9901f9d5ed325cf94d.tar.bz2
pflash: fix buffer overflow: fl_total_size uint32_t not uint64_t
This ends up being harmless bug due to memory layout. $ ./pflash -F ~/op-build/output/images/firestone.pnor -i ==31829==ERROR: AddressSanitizer: global-buffer-overflow on address 0x00000062f0 80 at pc 0x410226 bp 0x7ffedba9c950 sp 0x7ffedba9c948 WRITE of size 8 at 0x00000062f080 thread T0 #0 0x410225 in file_get_info (/home/stewart/skiboot/external/pflash/pflash+0 x410225) #1 0x40d832 in blocklevel_get_info (/home/stewart/skiboot/external/pflash/pf lash+0x40d832) #2 0x401f0c in main (/home/stewart/skiboot/external/pflash/pflash+0x401f0c) #3 0x7fc77439ab44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21 b44) #4 0x403884 (/home/stewart/skiboot/external/pflash/pflash+0x403884) Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'external')
-rw-r--r--external/pflash/pflash.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/external/pflash/pflash.c b/external/pflash/pflash.c
index 2700046..8570acd 100644
--- a/external/pflash/pflash.c
+++ b/external/pflash/pflash.c
@@ -53,7 +53,8 @@ static uint8_t file_buf[FILE_BUF_SIZE] __aligned(0x1000);
static struct blocklevel_device *bl;
static struct ffs_handle *ffsh;
-static uint32_t fl_total_size, fl_erase_granule;
+static uint64_t fl_total_size;
+static uint32_t fl_erase_granule;
static const char *fl_name;
static int32_t ffs_index = -1;