aboutsummaryrefslogtreecommitdiffstats
path: root/halfkay.c
diff options
context:
space:
mode:
Diffstat (limited to 'halfkay.c')
-rw-r--r--halfkay.c3
1 files changed, 2 insertions, 1 deletions
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;
}