[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24835] trunk/blender/source/blender/ editors/interface/interface.c: fix for crashes displaying long strings in menu's

Campbell Barton ideasman42 at gmail.com
Mon Nov 23 18:55:52 CET 2009


Revision: 24835
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24835
Author:   campbellbarton
Date:     2009-11-23 18:55:52 +0100 (Mon, 23 Nov 2009)

Log Message:
-----------
fix for crashes displaying long strings in menu's

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface.c

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2009-11-23 17:49:06 UTC (rev 24834)
+++ trunk/blender/source/blender/editors/interface/interface.c	2009-11-23 17:55:52 UTC (rev 24835)
@@ -1960,7 +1960,7 @@
 				sprintf(but->drawstr, "%s%.2f", but->str, value);
 			}
 		}
-		else strcpy(but->drawstr, but->str);
+		else strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
 		
 		break;
 
@@ -1978,7 +1978,7 @@
 		break;
 	
 	case KEYEVT:
-		strcpy(but->drawstr, but->str);
+		strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
 		if (but->flag & UI_SELECT) {
 			strcat(but->drawstr, "Press a key");
 		} else {
@@ -1991,9 +1991,9 @@
 			short *sp= (short *)but->func_arg3;
 			
 			if(but->flag & UI_BUT_IMMEDIATE)
-				strcpy(but->drawstr, but->str);
+				strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
 			else
-				strcpy(but->drawstr, "");
+				strncpy(but->drawstr, "", UI_MAX_DRAW_STR);
 			
 			if(*sp) {
 				char *str= but->drawstr;
@@ -2011,25 +2011,25 @@
 				strcat(but->drawstr, "Press a key  ");
 		}
 		else
-			strcpy(but->drawstr, but->str);
+			strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
 
 		break;
 		
 	case BUT_TOGDUAL:
 		/* trying to get the dual-icon to left of text... not very nice */
 		if(but->str[0]) {
-			strcpy(but->drawstr, "  ");
-			strcpy(but->drawstr+2, but->str);
+			strncpy(but->drawstr, "  ", UI_MAX_DRAW_STR);
+			strncpy(but->drawstr+2, but->str, UI_MAX_DRAW_STR-2);
 		}
 		break;
 	default:
-		strcpy(but->drawstr, but->str);
+		strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
 		
 	}
 
 	/* if we are doing text editing, this will override the drawstr */
 	if(but->editstr)
-		strcpy(but->drawstr, but->editstr);
+		strncpy(but->drawstr, but->editstr, UI_MAX_DRAW_STR);
 	
 	/* text clipping moved to widget drawing code itself */
 }





More information about the Bf-blender-cvs mailing list