summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-01-17 13:34:33 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-01-18 10:44:33 +0100
commitd16ccb7ee8b890c4e9fe5a9e062c0d525c44340c (patch)
tree1d859307ea5e02cb20c4d7be9baa1c2ff44ce20b
parente0d66aadb2a7d4e724a3b50ff377c30f3b90965c (diff)
downloadgnutls-d16ccb7ee8b890c4e9fe5a9e062c0d525c44340c.tar.gz
opencdk: improved error code checking in the stream reading functions
This ammends 49be4f7b82eba2363bb8d4090950dad976a77a3a Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r--lib/opencdk/read-packet.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/opencdk/read-packet.c b/lib/opencdk/read-packet.c
index 7a474ff54b..8a8d87a1fd 100644
--- a/lib/opencdk/read-packet.c
+++ b/lib/opencdk/read-packet.c
@@ -918,11 +918,12 @@ read_new_length(cdk_stream_t inp,
(*r_size)++;
*r_len = ((c - 192) << 8) + c1 + 192;
} else if (c == 255) {
- *r_len = read_32(inp);
- if (*r_len == (u32)-1) {
+ c1 = read_32(inp);
+ if (c1 == (u32)-1) {
return;
}
+ *r_len = c1;
(*r_size) += 4;
} else {
*r_len = 1 << (c & 0x1f);