[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34325] trunk/blender/source/blender/ blenlib/intern/BLI_dynstr.c: apply fix from r34275 to BLI_dynstr_appendf(), dont chop off last character for >256 length strings.
Campbell Barton
ideasman42 at gmail.com
Fri Jan 14 20:15:13 CET 2011
Revision: 34325
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34325
Author: campbellbarton
Date: 2011-01-14 19:15:06 +0000 (Fri, 14 Jan 2011)
Log Message:
-----------
apply fix from r34275 to BLI_dynstr_appendf(), dont chop off last character for >256 length strings.
Revision Links:
--------------
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34275
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/intern/BLI_dynstr.c
Modified: trunk/blender/source/blender/blenlib/intern/BLI_dynstr.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/BLI_dynstr.c 2011-01-14 17:41:33 UTC (rev 34324)
+++ trunk/blender/source/blender/blenlib/intern/BLI_dynstr.c 2011-01-14 19:15:06 UTC (rev 34325)
@@ -163,7 +163,9 @@
{
va_list args;
char *message, fixedmessage[256];
- int len= 256, maxlen= 65536, retval;
+ int len= sizeof(fixedmessage);
+ const int maxlen= 65536;
+ int retval;
/* note that it's tempting to just call BLI_dynstr_vappendf here
* and avoid code duplication, that crashes on some system because
@@ -173,7 +175,7 @@
if(len == sizeof(fixedmessage))
message= fixedmessage;
else
- message= MEM_callocN(sizeof(char)*(len+1), "BLI_dynstr_appendf");
+ message= MEM_callocN(sizeof(char)*(len), "BLI_dynstr_appendf");
va_start(args, format);
retval= vsnprintf(message, len, format, args);
@@ -192,13 +194,14 @@
break;
}
}
- else if(retval > len) {
+ else if(retval >= len) {
/* in C99 the actual length required is returned */
if(message != fixedmessage)
MEM_freeN(message);
message= NULL;
- len= retval;
+ /* retval doesnt include \0 terminator */
+ len= retval + 1;
}
else
break;
More information about the Bf-blender-cvs
mailing list