diff options
author | Bernhard Nortmann <bernhard.nortmann@web.de> | 2017-02-11 15:57:07 +0300 |
---|---|---|
committer | Bernhard Nortmann <bernhard.nortmann@web.de> | 2017-02-11 16:04:40 +0300 |
commit | 3eb763588e67112a5c2106000ed0bacfb9569dd1 (patch) | |
tree | 513802b63b33cff26ad80dbc9929f8bd57862501 /fel.c | |
parent | d5f5d5d1ad70aae6cbd23ed1a39d58b5b4315f49 (diff) |
fel: Safeguard against calling FEL read/write with zero bytes length
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Diffstat (limited to 'fel.c')
-rw-r--r-- | fel.c | 24 |
1 files changed, 15 insertions, 9 deletions
@@ -197,22 +197,28 @@ void *load_file(const char *name, size_t *size) void aw_fel_hexdump(feldev_handle *dev, uint32_t offset, size_t size) { - unsigned char buf[size]; - aw_fel_read(dev, offset, buf, size); - hexdump(buf, offset, size); + if (size > 0) { + unsigned char buf[size]; + aw_fel_read(dev, offset, buf, size); + hexdump(buf, offset, size); + } } void aw_fel_dump(feldev_handle *dev, uint32_t offset, size_t size) { - unsigned char buf[size]; - aw_fel_read(dev, offset, buf, size); - fwrite(buf, size, 1, stdout); + if (size > 0) { + unsigned char buf[size]; + aw_fel_read(dev, offset, buf, size); + fwrite(buf, size, 1, stdout); + } } void aw_fel_fill(feldev_handle *dev, uint32_t offset, size_t size, unsigned char value) { - unsigned char buf[size]; - memset(buf, value, size); - aw_write_buffer(dev, buf, offset, size, false); + if (size > 0) { + unsigned char buf[size]; + memset(buf, value, size); + aw_write_buffer(dev, buf, offset, size, false); + } } static uint32_t fel_to_spl_thunk[] = { |