From 4b56f68e9876be3c42b93be1600cfe6d96ca1530 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Wed, 23 Nov 2016 22:22:46 +0000 Subject: halfkay.c: Prevent shift past type size --- halfkay.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'halfkay.c') diff --git a/halfkay.c b/halfkay.c index 899e456..755a84e 100644 --- a/halfkay.c +++ b/halfkay.c @@ -89,10 +89,11 @@ static void usbsendcmd(void *data, size_t size, bool firstxfer) static void fmtcmd(void *_dest, const struct flashparams *fp, size_t addr) { + static const size_t MAX_SHIFT = sizeof addr * CHAR_BIT / 8; unsigned char *dest = _dest; addr >>= fp->addrshft; - for (size_t i = 0; i < fp->cmdsz; i++) + for (size_t i = 0; i < fp->cmdsz && i < MAX_SHIFT; i++) dest[i] = (addr >> (i * 8)) & 0xFF; } -- cgit v1.2.3-54-g00ecf