diff options
-rw-r--r-- | epan/wslua/wslua_file_common.c | 2 | ||||
-rw-r--r-- | epan/wslua/wslua_file_handler.c | 2 | ||||
-rw-r--r-- | epan/wslua/wslua_gui.c | 2 | ||||
-rw-r--r-- | epan/wslua/wslua_listener.c | 2 |
4 files changed, 7 insertions, 1 deletions
diff --git a/epan/wslua/wslua_file_common.c b/epan/wslua/wslua_file_common.c index 8b3bb99a4a..4333c26ea3 100644 --- a/epan/wslua/wslua_file_common.c +++ b/epan/wslua/wslua_file_common.c @@ -45,6 +45,7 @@ void create_wth_priv(lua_State* L, wtap *wth) { file_priv_t *priv = (file_priv_t*)g_malloc(sizeof(file_priv_t)); if (wth->priv != NULL) { + g_free(priv); luaL_error(L, "Cannot create wtap private data because there already is private data"); return; } @@ -121,6 +122,7 @@ void create_wdh_priv(lua_State* L, wtap_dumper *wdh) { file_priv_t *priv = (file_priv_t*)g_malloc(sizeof(file_priv_t)); if (wdh->priv != NULL) { + g_free(priv); luaL_error(L, "Cannot create wtap_dumper private data because there already is private data"); return; } diff --git a/epan/wslua/wslua_file_handler.c b/epan/wslua/wslua_file_handler.c index 90550666a4..5a7ca89e73 100644 --- a/epan/wslua/wslua_file_handler.c +++ b/epan/wslua/wslua_file_handler.c @@ -635,10 +635,12 @@ WSLUA_CONSTRUCTOR FileHandler_new(lua_State* L) { fh->is_writer = (strchr(type,'w') != NULL) ? TRUE : FALSE; if (fh->is_reader && wtap_has_open_info(short_name)) { + g_free(fh); return luaL_error(L, "FileHandler.new: '%s' short name already exists for a reader!", short_name); } if (fh->is_writer && wtap_short_string_to_file_type_subtype(short_name) > -1) { + g_free(fh); return luaL_error(L, "FileHandler.new: '%s' short name already exists for a writer!", short_name); } diff --git a/epan/wslua/wslua_gui.c b/epan/wslua/wslua_gui.c index e1c8d019f6..ac2fa0e2ce 100644 --- a/epan/wslua/wslua_gui.c +++ b/epan/wslua/wslua_gui.c @@ -265,6 +265,7 @@ WSLUA_FUNCTION wslua_new_dialog(lua_State* L) { /* Pops up a new dialog */ for (i = 1; i <= top; i++) { if (! lua_isstring(L,i)) { g_ptr_array_free(labels,TRUE); + g_free (dcbd); WSLUA_ERROR(new_dialog,"All fields must be strings"); return 0; } @@ -296,6 +297,7 @@ WSLUA_CONSTRUCTOR ProgDlg_new(lua_State* L) { /* Creates a new `ProgDlg` progres if (ops->new_progress_window) { pd->pw = ops->new_progress_window(ops->ops_id, pd->title, pd->task, TRUE, &(pd->stopped)); } else { + g_free (pd); WSLUA_ERROR(ProgDlg_new, "GUI not available"); return 0; } diff --git a/epan/wslua/wslua_listener.c b/epan/wslua/wslua_listener.c index 0110774029..dd60ab3a92 100644 --- a/epan/wslua/wslua_listener.c +++ b/epan/wslua/wslua_listener.c @@ -240,7 +240,7 @@ WSLUA_CONSTRUCTOR Listener_new(lua_State* L) { /* WSLUA_ERROR(new_tap,"tap registration error"); */ lua_pushfstring(L,"Error while registering tap:\n%s",error->str); g_string_free(error,TRUE); - luaL_error(L,lua_tostring(L,-1)); + return luaL_error(L,lua_tostring(L,-1)); } if (all_fields) { |