diff options
-rw-r--r-- | src/gui/gui-common.c | 20 | ||||
-rw-r--r-- | weechat/src/gui/gui-common.c | 20 |
2 files changed, 22 insertions, 18 deletions
diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c index 2cb5a6fb2..0d28ae824 100644 --- a/src/gui/gui-common.c +++ b/src/gui/gui-common.c @@ -1087,16 +1087,18 @@ gui_input_clipboard_paste () void gui_input_clipboard_copy (char *buffer, int size) { - - if (gui_input_clipboard != NULL) - free(gui_input_clipboard); - - gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard)); - - if (gui_input_clipboard) + if (size <= 0) + return; + + if (gui_input_clipboard != NULL) + free(gui_input_clipboard); + + gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard)); + + if (gui_input_clipboard) { - memcpy(gui_input_clipboard, buffer, size); - gui_input_clipboard[size] = '\0'; + memcpy(gui_input_clipboard, buffer, size); + gui_input_clipboard[size] = '\0'; } } diff --git a/weechat/src/gui/gui-common.c b/weechat/src/gui/gui-common.c index 2cb5a6fb2..0d28ae824 100644 --- a/weechat/src/gui/gui-common.c +++ b/weechat/src/gui/gui-common.c @@ -1087,16 +1087,18 @@ gui_input_clipboard_paste () void gui_input_clipboard_copy (char *buffer, int size) { - - if (gui_input_clipboard != NULL) - free(gui_input_clipboard); - - gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard)); - - if (gui_input_clipboard) + if (size <= 0) + return; + + if (gui_input_clipboard != NULL) + free(gui_input_clipboard); + + gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard)); + + if (gui_input_clipboard) { - memcpy(gui_input_clipboard, buffer, size); - gui_input_clipboard[size] = '\0'; + memcpy(gui_input_clipboard, buffer, size); + gui_input_clipboard[size] = '\0'; } } |