summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2015-03-07 09:57:24 +0100
committerSébastien Helleu <flashcode@flashtux.org>2015-03-07 16:52:30 +0100
commitbed4ee1f355326ecdd9945fb8b5371cea6cd1509 (patch)
tree28a17f9db0a3b7871904a928b81842fa47832310 /src
parentdfb2c79cbb0475c74f13b7ca9d42188957675d4e (diff)
downloadweechat-bed4ee1f355326ecdd9945fb8b5371cea6cd1509.zip
javascript: fix crash in return of string values when WeeChat API function returns NULL
Diffstat (limited to 'src')
-rw-r--r--src/plugins/javascript/weechat-js-api.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/javascript/weechat-js-api.cpp b/src/plugins/javascript/weechat-js-api.cpp
index ad6a4e9fa..6ffe55673 100644
--- a/src/plugins/javascript/weechat-js-api.cpp
+++ b/src/plugins/javascript/weechat-js-api.cpp
@@ -101,13 +101,17 @@ using namespace v8;
#define API_RETURN_EMPTY \
return String::New("");
#define API_RETURN_STRING(__string) \
- return String::New(__string)
+ if (__string) \
+ return String::New(__string); \
+ return String::New("")
#define API_RETURN_STRING_FREE(__string) \
+ if (__string) \
{ \
Handle<Value> return_value = String::New(__string); \
free ((void *)__string); \
return return_value; \
- }
+ } \
+ return String::New("")
#define API_RETURN_INT(__int) \
return Integer::New(__int)
#define API_RETURN_LONG(__int) \
@@ -3188,6 +3192,9 @@ API_FUNC(buffer_get_string)
result = weechat_buffer_get_string (
(struct t_gui_buffer *)API_STR2PTR(*buffer),
*property);
+ weechat_log_printf ("buffer: %s", *buffer);
+ weechat_log_printf ("property: %s", *property);
+ weechat_log_printf ("result: %lx", result);
API_RETURN_STRING(result);
}