aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/wslua/wslua_file_common.c2
-rw-r--r--epan/wslua/wslua_file_handler.c2
-rw-r--r--epan/wslua/wslua_gui.c2
-rw-r--r--epan/wslua/wslua_listener.c2
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) {