[asterisk-bugs] [Asterisk 0015271]: [patch] BASE64_DECODE() adds garbage end end of decoded string
Asterisk Bug Tracker
noreply at bugs.digium.com
Wed Sep 9 15:21:33 CDT 2009
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=15271
======================================================================
Reported By: chappell
Assigned To: lmadsen
======================================================================
Project: Asterisk
Issue ID: 15271
Category: Functions/func_base64
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
Asterisk Version: 1.4.24
Regression: No
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
======================================================================
Date Submitted: 2009-06-04 10:16 CDT
Last Modified: 2009-09-09 15:21 CDT
======================================================================
Summary: [patch] BASE64_DECODE() adds garbage end end of
decoded string
Description:
This problem has two causes:
1) BASE64_DECODE() fails to null terminate its return value. This becomes
evident if first a long string is decoded and then a short one. The short
one will have have the last part of the long string appended to it.
2) What is more, ast_base64decode() does not recognize the equals signs
which pad the end of a string the length of which is not a multiple of
three bytes. Rather than stopping, it decodes the padding as data,
producing bogus output.
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0011018 patch for 10979 breaks IAX RSA auth
related to 0010979 [path] main/util.c missed *dst='\0'; in...
======================================================================
----------------------------------------------------------------------
(0110439) kobaz (reporter) - 2009-09-09 15:21
https://issues.asterisk.org/view.php?id=15271#c110439
----------------------------------------------------------------------
In trunk, the base64 decoded string is properly null terminated now, but
still doesn't stop after encountering an '='
main/utils.c: Line 270
- while (*src && (cnt < max)) {
+ while (*src && (*src != '=') && (cnt < max)) {
Issue History
Date Modified Username Field Change
======================================================================
2009-09-09 15:21 kobaz Note Added: 0110439
======================================================================
More information about the asterisk-bugs
mailing list