mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Issue #1521: on 64bit platforms, str.decode fails on very long strings.
The t# and w# formats were not correctly handled. Will backport.
This commit is contained in:
		
							parent
							
								
									be49a90eb3
								
							
						
					
					
						commit
						dafd32b730
					
				
					 3 changed files with 15 additions and 7 deletions
				
			
		|  | @ -894,7 +894,8 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, | |||
| 		char **buffer; | ||||
| 		const char *encoding; | ||||
| 		PyObject *s; | ||||
| 		int size, recode_strings; | ||||
| 		Py_ssize_t size; | ||||
| 		int recode_strings; | ||||
| 
 | ||||
| 		/* Get 'e' parameter: the encoding name */ | ||||
| 		encoding = (const char *)va_arg(*p_va, const char *); | ||||
|  | @ -1144,7 +1145,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, | |||
| 	case 'w': { /* memory buffer, read-write access */ | ||||
| 		void **p = va_arg(*p_va, void **); | ||||
| 		PyBufferProcs *pb = arg->ob_type->tp_as_buffer; | ||||
| 		int count; | ||||
| 		Py_ssize_t count; | ||||
| 			 | ||||
| 		if (pb == NULL ||  | ||||
| 		    pb->bf_getwritebuffer == NULL || | ||||
|  | @ -1166,7 +1167,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, | |||
| 	case 't': { /* 8-bit character buffer, read-only access */ | ||||
| 		char **p = va_arg(*p_va, char **); | ||||
| 		PyBufferProcs *pb = arg->ob_type->tp_as_buffer; | ||||
| 		int count; | ||||
| 		Py_ssize_t count; | ||||
| 		 | ||||
| 		if (*format++ != '#') | ||||
| 			return converterr( | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Amaury Forgeot d'Arc
						Amaury Forgeot d'Arc