diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 4 | ||||
-rw-r--r-- | src/fns.c | 14 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 97235b593ec..da4dc9c21c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2000-09-24 Dave Love <fx@gnu.org> + + * fns.c (base64_encode_1): Fix last change. + 2000-09-22 Gerd Moellmann <gerd@gnu.org> * dispnew.c (enable_glyph_matrix_rows): Remove xasserts. diff --git a/src/fns.c b/src/fns.c index e46159fd63c..fce3d728a3a 100644 --- a/src/fns.c +++ b/src/fns.c @@ -3377,7 +3377,7 @@ base64_encode_1 (from, to, length, line_break, multibyte) { int counter = 0, i = 0; char *e = to; - unsigned char c; + int c; unsigned int value; int bytes; @@ -3386,9 +3386,9 @@ base64_encode_1 (from, to, length, line_break, multibyte) if (multibyte) { c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes); - if (!SINGLE_BYTE_CHAR_P (c)) + if (bytes > 1) return -1; - i += bytes; + i++; } else c = from[i++]; @@ -3424,7 +3424,9 @@ base64_encode_1 (from, to, length, line_break, multibyte) if (multibyte) { c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes); - i += bytes; + if (bytes > 1) + return -1; + i++; } else c = from[i++]; @@ -3444,7 +3446,9 @@ base64_encode_1 (from, to, length, line_break, multibyte) if (multibyte) { c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes); - i += bytes; + if (bytes > 1) + return -1; + i++; } else c = from[i++]; |