aboutsummaryrefslogtreecommitdiffstats
path: root/src/sbearssl/sbearssl_pem_decode_from_buffer.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-01-10 02:17:16 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-01-10 02:17:16 +0000
commit334d807b924427434b42d4fbae745d3d1b38a218 (patch)
tree6daf12c1e2fa07d2ac6255ef4439e2fb95a57f57 /src/sbearssl/sbearssl_pem_decode_from_buffer.c
parent43cb3ee4227de70e0225e9ac142b4d397f93cc41 (diff)
downloads6-networking-334d807b924427434b42d4fbae745d3d1b38a218.tar.gz
Types fix, first pass
XXX marks what must change when skalibs changes. Also started writing functions for client certificate support in sbearssl, but it's not working yet (need more high-level support from BearSSL before it can work)
Diffstat (limited to 'src/sbearssl/sbearssl_pem_decode_from_buffer.c')
-rw-r--r--src/sbearssl/sbearssl_pem_decode_from_buffer.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/sbearssl/sbearssl_pem_decode_from_buffer.c b/src/sbearssl/sbearssl_pem_decode_from_buffer.c
index 8aecfda..e246b87 100644
--- a/src/sbearssl/sbearssl_pem_decode_from_buffer.c
+++ b/src/sbearssl/sbearssl_pem_decode_from_buffer.c
@@ -21,15 +21,15 @@ int sbearssl_pem_decode_from_buffer (buffer *b, genalloc *list, stralloc *sa)
int listwasnull = !genalloc_s(sbearssl_pemobject, list) ;
int sawasnull = !sa->s ;
int inobj = 0 ;
- int r ;
+ int r = -1 ;
br_pem_decoder_init(&ctx) ;
for (;;)
{
siovec_t v[2] ;
- r = buffer_fill(b) ;
- if (r < 0) goto fail ;
- if (!r) break ;
+ ssize_t rr = buffer_fill(b) ;
+ if (rr < 0) goto rfail ;
+ if (!rr) break ;
buffer_rpeek(b, v) ;
r = sbearssl_pem_push(&ctx, v[0].s, v[0].len, &po, list, &blah, &inobj) ;
if (r) goto fail ;
@@ -42,8 +42,9 @@ int sbearssl_pem_decode_from_buffer (buffer *b, genalloc *list, stralloc *sa)
}
if (!inobj) return 0 ;
- r = -1 ;
errno = EPROTO ;
+ rfail:
+ r = -1 ;
fail:
if (listwasnull) genalloc_free(sbearssl_pemobject, list) ;
else genalloc_setlen(sbearssl_pemobject, list, listbase) ;