From f80346f42df4bdc7d0a9741c3922129aceae4f81 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 10 Sep 2018 13:44:47 +0900 Subject: [PATCH] common: Use iobuf_get_noeof to avoid undefined behaviors. * common/iobuf.c (block_filter): Use iobuf_get_noeof. -- When singed integer has negative value, left shift computation is undefined in C. GnuPG-bug-id: 4093 Reported-by: Philippe Antoine Signed-off-by: NIIBE Yutaka --- common/iobuf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/iobuf.c b/common/iobuf.c index 02c9b491c..8f52f7f5c 100644 --- a/common/iobuf.c +++ b/common/iobuf.c @@ -878,9 +878,9 @@ block_filter (void *opaque, int control, iobuf_t chain, byte * buffer, } else if (c == 255) { - a->size = (size_t)iobuf_get (chain) << 24; - a->size |= iobuf_get (chain) << 16; - a->size |= iobuf_get (chain) << 8; + a->size = iobuf_get_noeof (chain) << 24; + a->size |= iobuf_get_noeof (chain) << 16; + a->size |= iobuf_get_noeof (chain) << 8; if ((c = iobuf_get (chain)) == -1) { log_error ("block_filter: invalid 4 byte length\n");