summaryrefslogtreecommitdiffstats
path: root/Modules/binascii.c
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2004-06-06 20:13:10 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2004-06-06 20:13:10 (GMT)
commitfe92eef85b081640e20b787c99282544e148fc1c (patch)
treec60317ab670f8cc749ec5cb89efc03390b86c256 /Modules/binascii.c
parent7b0a5057afaadab77aa20f87681edd89e327ea3c (diff)
downloadcpython-fe92eef85b081640e20b787c99282544e148fc1c.zip
cpython-fe92eef85b081640e20b787c99282544e148fc1c.tar.gz
cpython-fe92eef85b081640e20b787c99282544e148fc1c.tar.bz2
Valgrind was reporting an uninitialized read for bad input.
This fixes the problem and the test passes. I'm not sure the test is really correct though. It seems like it would be better to raise an exception. I think that wasn't done for backwards compatability. Bugfix candidate.
Diffstat (limited to 'Modules/binascii.c')
-rw-r--r--Modules/binascii.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Modules/binascii.c b/Modules/binascii.c
index 9cc49f6..f1f9615 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -204,7 +204,8 @@ binascii_a2b_uu(PyObject *self, PyObject *args)
bin_data = (unsigned char *)PyString_AsString(rv);
for( ; bin_len > 0 ; ascii_len--, ascii_data++ ) {
- this_ch = *ascii_data;
+ /* XXX is it really best to add NULs if there's no more data */
+ this_ch = (ascii_len > 0) ? *ascii_data : 0;
if ( this_ch == '\n' || this_ch == '\r' || ascii_len <= 0) {
/*
** Whitespace. Assume some spaces got eaten at