diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2017-01-10 02:17:16 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2017-01-10 02:17:16 +0000 |
| commit | 334d807b924427434b42d4fbae745d3d1b38a218 (patch) | |
| tree | 6daf12c1e2fa07d2ac6255ef4439e2fb95a57f57 /src/sbearssl/sbearssl_pem_decode_from_buffer.c | |
| parent | 43cb3ee4227de70e0225e9ac142b4d397f93cc41 (diff) | |
| download | s6-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.c | 11 |
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) ; |
