Skip to content
Snippets Groups Projects
Commit 5a15cb3b authored by Brad King's avatar Brad King
Browse files

Base64: Use size_t for lenghts in API

Ensure the Encode/Decode APIs can deal with any buffer that can fit
in memory.

Change-Id: I3ecc50d5b9419a36f95b0888c71e0309a8cb674a
parent 87c65319
No related branches found
No related tags found
No related merge requests found
......@@ -115,10 +115,10 @@ void kwsysBase64_Encode1(const unsigned char *src, unsigned char *dest)
actually knowing how much data to expect (if the input is not a multiple of
3 bytes then the extra padding needed to complete the encode 4 bytes will
stop the decoding anyway). */
unsigned long kwsysBase64_Encode(const unsigned char *input,
unsigned long length,
unsigned char *output,
int mark_end)
size_t kwsysBase64_Encode(const unsigned char *input,
size_t length,
unsigned char *output,
int mark_end)
{
const unsigned char *ptr = input;
const unsigned char *end = input + length;
......@@ -157,7 +157,7 @@ unsigned long kwsysBase64_Encode(const unsigned char *input,
optr += 4;
}
return (unsigned long)(optr - output);
return (size_t)(optr - output);
}
/*--------------------------------------------------------------------------*/
......@@ -207,10 +207,10 @@ int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest)
'length' parameter is ignored. This enables the caller to decode a stream
without actually knowing how much decoded data to expect (of course, the
buffer must be large enough). */
unsigned long kwsysBase64_Decode(const unsigned char *input,
unsigned long length,
unsigned char *output,
unsigned long max_input_length)
size_t kwsysBase64_Decode(const unsigned char *input,
size_t length,
unsigned char *output,
size_t max_input_length)
{
const unsigned char *ptr = input;
unsigned char *optr = output;
......@@ -226,7 +226,7 @@ unsigned long kwsysBase64_Decode(const unsigned char *input,
optr += len;
if(len < 3)
{
return (unsigned long)(optr - output);
return (size_t)(optr - output);
}
ptr += 4;
}
......@@ -240,7 +240,7 @@ unsigned long kwsysBase64_Decode(const unsigned char *input,
optr += len;
if(len < 3)
{
return (unsigned long)(optr - output);
return (size_t)(optr - output);
}
ptr += 4;
}
......@@ -275,5 +275,5 @@ unsigned long kwsysBase64_Decode(const unsigned char *input,
}
}
return (unsigned long)(optr - output);
return (size_t)(optr - output);
}
......@@ -14,6 +14,8 @@
#include <@KWSYS_NAMESPACE@/Configure.h>
#include <stddef.h> /* size_t */
/* Redefine all public interface symbol names to be in the proper
namespace. These macros are used internally to kwsys only, and are
not visible to user code. Use kwsysHeaderDump.pl to reproduce
......@@ -68,10 +70,10 @@ kwsysEXPORT void kwsysBase64_Encode1(const unsigned char *src,
* the extra padding needed to complete the encode 4 bytes will stop
* the decoding anyway).
*/
kwsysEXPORT unsigned long kwsysBase64_Encode(const unsigned char *input,
unsigned long length,
unsigned char *output,
int mark_end);
kwsysEXPORT size_t kwsysBase64_Encode(const unsigned char *input,
size_t length,
unsigned char *output,
int mark_end);
/**
* Decode 4 bytes into a 3 byte string. Returns the number of bytes
......@@ -92,10 +94,10 @@ kwsysEXPORT int kwsysBase64_Decode3(const unsigned char *src,
* much decoded data to expect (of course, the buffer must be large
* enough).
*/
kwsysEXPORT unsigned long kwsysBase64_Decode(const unsigned char *input,
unsigned long length,
unsigned char *output,
unsigned long max_input_length);
kwsysEXPORT size_t kwsysBase64_Decode(const unsigned char *input,
size_t length,
unsigned char *output,
size_t max_input_length);
#if defined(__cplusplus)
} /* extern "C" */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment