[Python-checkins] CVS: python/dist/src/Modules binascii.c,2.28,2.28.4.1

Anthony Baxter anthonybaxter@users.sourceforge.net
Thu, 01 Nov 2001 03:30:08 -0800


Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv700

Modified Files:
      Tag: release21-maint
	binascii.c 
Log Message:
backport fixes from 2.32 and 2.29:
  Change the limit on the input size for b2a_base64 to what will fit in
  memory, rather than the standard's 57.
  This fixes SF bug #473009.

  This closes bug #430849 (internal error produced by binascii.a2b_base64)


Index: binascii.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/binascii.c,v
retrieving revision 2.28
retrieving revision 2.28.4.1
diff -C2 -d -r2.28 -r2.28.4.1
*** binascii.c	2001/01/09 02:11:57	2.28
--- binascii.c	2001/11/01 11:30:06	2.28.4.1
***************
*** 127,131 ****
  
  #define BASE64_PAD '='
! #define BASE64_MAXBIN 57	/* Max binary chunk size (76 char line) */
  
  static unsigned char table_b2a_base64[] =
--- 127,133 ----
  
  #define BASE64_PAD '='
! 
! /* Max binary chunk size; limited only by available memory */
! #define BASE64_MAXBIN (INT_MAX/2 - sizeof(PyStringObject))
  
  static unsigned char table_b2a_base64[] =
***************
*** 336,339 ****
--- 338,345 ----
  		return NULL;
  
+ 	if ( ascii_len == 0) {
+ 		PyErr_SetString(Error, "Cannot decode empty input");
+ 		return NULL;
+ 	}
  	bin_len = ((ascii_len+3)/4)*3; /* Upper bound, corrected later */