summaryrefslogtreecommitdiff
path: root/ext/xmlrpc/libxmlrpc
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2019-01-01 17:15:20 -0800
committerStanislav Malyshev <stas@php.net>2019-01-06 11:38:46 -0800
commit4feb9e66ff9636ad44bc23a91b7ebd37d83ddf1d (patch)
treeede1c3a381e11a0d320a7c17798edb444568f679 /ext/xmlrpc/libxmlrpc
parentc6e34d91b88638966662caac62c4d0e90538e317 (diff)
downloadphp-git-4feb9e66ff9636ad44bc23a91b7ebd37d83ddf1d.tar.gz
Fix bug #77380 (Global out of bounds read in xmlrpc base64 code)
Diffstat (limited to 'ext/xmlrpc/libxmlrpc')
-rw-r--r--ext/xmlrpc/libxmlrpc/base64.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/xmlrpc/libxmlrpc/base64.c b/ext/xmlrpc/libxmlrpc/base64.c
index 5ebdf31f7a..a4fa19327b 100644
--- a/ext/xmlrpc/libxmlrpc/base64.c
+++ b/ext/xmlrpc/libxmlrpc/base64.c
@@ -77,7 +77,7 @@ void base64_encode_xmlrpc(struct buffer_st *b, const char *source, int length)
while (!hiteof) {
unsigned char igroup[3], ogroup[4];
- int c, n;
+ int c, n;
igroup[0] = igroup[1] = igroup[2] = 0;
for (n = 0; n < 3; n++) {
@@ -169,7 +169,7 @@ void base64_decode_xmlrpc(struct buffer_st *bfr, const char *source, int length)
return;
}
- if (dtable[c] & 0x80) {
+ if (dtable[(unsigned char)c] & 0x80) {
/*
fprintf(stderr, "Offset %i length %i\n", offset, length);
fprintf(stderr, "character '%c:%x:%c' in input file.\n", c, c, dtable[c]);