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 */
 }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to