From ab03a10340b11583ecaecbfebbd79cdf97423d80 Mon Sep 17 00:00:00 2001 From: TLINDEN Date: Mon, 10 Feb 2014 08:46:52 +0100 Subject: [PATCH] sanitized pcp_unpadfour(), just return the number of zero padding, leave the input pointer untouched; fixed header --- include/pcp/z85.h | 4 ++-- libpcp/z85.c | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/include/pcp/z85.h b/include/pcp/z85.h index 47e406d..73d69a2 100644 --- a/include/pcp/z85.h +++ b/include/pcp/z85.h @@ -30,10 +30,10 @@ /* convert a binary stream to one which gets accepted by zmq_z85_encode */ /* we pad it with zeroes and put the number of zerores in front of it */ -unsigned char *pcp_unpadfour(unsigned char *src, size_t srclen, size_t *dstlen); +unsigned char *pcp_padfour(unsigned char *src, size_t srclen, size_t *dstlen); /* the reverse of the above */ -unsigned char *pcp_unpadfour(unsigned char *src, size_t srclen, size_t *dstlen); +size_t pcp_unpadfour(unsigned char *src, size_t srclen); /* wrapper around zmq Z85 encoding function */ unsigned char *pcp_z85_decode(char *z85block, size_t *dstlen); diff --git a/libpcp/z85.c b/libpcp/z85.c index 4292569..da8bde5 100644 --- a/libpcp/z85.c +++ b/libpcp/z85.c @@ -39,7 +39,7 @@ unsigned char *pcp_padfour(unsigned char *src, size_t srclen, size_t *dstlen) { return dst; } -unsigned char *pcp_unpadfour(unsigned char *src, size_t srclen, size_t *dstlen) { +size_t pcp_unpadfour(unsigned char *src, size_t srclen) { size_t outlen; size_t i; @@ -52,13 +52,11 @@ unsigned char *pcp_unpadfour(unsigned char *src, size_t srclen, size_t *dstlen) } } - *dstlen = outlen; - return src; + return outlen; } unsigned char *pcp_z85_decode(char *z85block, size_t *dstlen) { unsigned char *bin = NULL; - unsigned char *raw = NULL; size_t binlen, outlen; binlen = strlen(z85block) * 4 / 5; @@ -69,11 +67,11 @@ unsigned char *pcp_z85_decode(char *z85block, size_t *dstlen) { return NULL; } - raw = pcp_unpadfour(bin, binlen, &outlen); + outlen = pcp_unpadfour(bin, binlen); *dstlen = outlen; - return raw; + return bin; } char *pcp_z85_encode(unsigned char *raw, size_t srclen, size_t *dstlen) {