diff options
author | NIIBE Yutaka <[email protected]> | 2018-09-10 04:44:47 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2018-09-10 04:59:14 +0000 |
commit | 0383e7fed7b2a45c7f0ae4c11415c6a9a3a3ddb7 (patch) | |
tree | 6ec3f4b109ea8bafed852dc0c589e426d1f14887 | |
parent | agent: Fix error code check from npth_mutex_init. (diff) | |
download | gnupg-0383e7fed7b2a45c7f0ae4c11415c6a9a3a3ddb7.tar.gz gnupg-0383e7fed7b2a45c7f0ae4c11415c6a9a3a3ddb7.zip |
common: Use iobuf_get_noeof to avoid undefined behaviors.
* common/iobuf.c (block_filter): Use iobuf_get_noeof.
--
Cherry-pick from master commit of:
f80346f42df4bdc7d0a9741c3922129aceae4f81
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 <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | common/iobuf.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/common/iobuf.c b/common/iobuf.c index 5a9fd7caf..8de46f4c3 100644 --- a/common/iobuf.c +++ b/common/iobuf.c @@ -856,9 +856,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"); |