X.509: Fix indefinite length element skip error handling
authorDavid Howells <dhowells@redhat.com>
Thu, 4 Oct 2012 13:21:23 +0000 (14:21 +0100)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 10 Oct 2012 09:36:39 +0000 (20:06 +1030)
commitdbadc17683e6c673a69b236c0f041b931cc55c42
treeec29aabfa428ca2c06caba94595b8c5d51a687e7
parent2f1c4fef103ef914e266588af263fb42b502b347
X.509: Fix indefinite length element skip error handling

asn1_find_indefinite_length() returns an error indicator of -1, which the
caller asn1_ber_decoder() places in a size_t (which is usually unsigned) and
then checks to see whether it is less than 0 (which it can't be).  This can
lead to the following warning:

lib/asn1_decoder.c:320 asn1_ber_decoder()
warn: unsigned 'len' is never less than zero.

Instead, asn1_find_indefinite_length() update the caller's idea of the data
cursor and length separately from returning the error code.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
lib/asn1_decoder.c