From 4aaeea028cba3c93b3d62063f07d94681af9791c Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sun, 3 Jun 2018 22:07:53 +0000 Subject: [PATCH] Avoid ssize_t type, since it is POSIX-specific Only j could become negative, so we simply check before it would --- base58.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/base58.c b/base58.c index 33566e0..810ebbe 100644 --- a/base58.c +++ b/base58.c @@ -15,7 +15,6 @@ #include #include #include -#include #include "libbase58.h" @@ -146,7 +145,7 @@ bool b58enc(char *b58, size_t *b58sz, const void *data, size_t binsz) { const uint8_t *bin = data; int carry; - ssize_t i, j, high, zcount = 0; + size_t i, j, high, zcount = 0; size_t size; while (zcount < binsz && !bin[zcount]) @@ -163,6 +162,10 @@ bool b58enc(char *b58, size_t *b58sz, const void *data, size_t binsz) carry += 256 * buf[j]; buf[j] = carry % 58; carry /= 58; + if (!j) { + // Otherwise j wraps to maxint which is > high + break; + } } }