diff options
Diffstat (limited to 'source/blender/editors/interface/interface.c')
-rw-r--r-- | source/blender/editors/interface/interface.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index e730182ae37..50161863872 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2647,7 +2647,18 @@ void ui_but_update(uiBut *but) if (RNA_property_enum_name_gettexted(but->block->evil_C, &but->rnapoin, but->rnaprop, value, &buf)) { - BLI_strncpy(but->str, buf, sizeof(but->strdata)); + if (but->str == but->strdata) { + if (strlen(buf) < sizeof(but->strdata)) { + BLI_strncpy(but->str, buf, sizeof(but->strdata)); + } + else { + but->str = BLI_strdup(buf); + } + } + else { + MEM_SAFE_FREE(but->str); + but->str = BLI_strdup(buf); + } } } } |