dtappbuilder: Further coverity, resource leaks, copy intofixed size buffer and dereference before null checl

This commit is contained in:
Peter Howkins
2018-04-28 02:51:10 +01:00
parent 0aa8780fa1
commit a135a89876
18 changed files with 82 additions and 44 deletions

View File

@@ -1085,12 +1085,13 @@ format_dir_name_for_user(
)
{
STRING home= getenv(home_env_var_name);
int home_name_len= strlen(home);
int home_name_len = 0;
int i= 0;
if (home != NULL)
{
char home_relative[MAXPATHLEN];
home_name_len = strlen(home);
*home_relative = 0;
util_cvt_path_to_relative(ugly_dir, home, home_relative, MAXPATHLEN);

View File

@@ -811,6 +811,7 @@ abobj_update_proj_name(
catgets(Dtb_project_catd, 10, 1, "Project Organizer"));
strcat(new_title, " - ");
strcat(new_title, proj_win_title);
util_free(proj_win_title);
XtVaSetValues(XtParent(AB_proj_window), XmNtitle, new_title, NULL);
@@ -873,6 +874,7 @@ abobj_update_palette_title(
catgets(Dtb_project_catd, 10, 5, "Application Builder"));
strcat(new_title, " - ");
strcat(new_title, proj_win_title);
util_free(proj_win_title);
if (SaveNeeded)
{

View File

@@ -705,8 +705,10 @@ browser_rband(
/*
* Return if no selected nodes
*/
if (num_selected == 0)
if (num_selected == 0) {
util_free(selected_nodes);
return;
}
new_sel.list = (ABObj *)util_malloc(num_selected * sizeof(ABObj));
new_sel.count = 0;

View File

@@ -1420,8 +1420,10 @@ brwsP_collapse_selected(
/*
* Return if no selected nodes
*/
if (num_selected == 0)
if (num_selected == 0) {
util_free(selected_nodes);
return;
}
for (i=0; i < num_selected; ++i)
{
@@ -1480,8 +1482,10 @@ brwsP_expand_selected(
/*
* Return if no selected nodes
*/
if (num_selected == 0)
if (num_selected == 0) {
util_free(selected_nodes);
return;
}
for (i=0; i < num_selected; ++i)
{
@@ -1540,8 +1544,10 @@ brwsP_expand_collapsed(
/*
* Return if no collapsed nodes
*/
if (num_collapsed == 0)
if (num_collapsed == 0) {
free(collapsed_nodes);
return;
}
for (i=0; i < num_collapsed; ++i)
{

View File

@@ -2711,12 +2711,14 @@ destroy_links_to_file(STRING fileName)
strlist_add_str(doomedFiles, fileName, NULL);
if (stat(fileName, &doomedFileInfo) != 0)
{
util_free(doomedFiles);
return ERR_OPEN;
}
dir = opendir(".");
if (dir == NULL)
{
util_free(doomedFiles);
return ERR_INTERNAL;
}

View File

@@ -1523,8 +1523,10 @@ project_rband(
/*
* Return if no selected nodes
*/
if (num_selected == 0)
if (num_selected == 0) {
free(selected_nodes);
return;
}
/*
* For each object enclosed in rubber band rectangle

View File

@@ -218,8 +218,10 @@ projP_save_mod_proc(
vwr_get_cond(v->current_tree, &selected_nodes,
&num_selected, select_fn);
if (num_selected == 0)
if (num_selected == 0) {
free(selected_nodes);
return;
}
obj = (AB_OBJ *)selected_nodes[0]->obj_data;
@@ -292,8 +294,7 @@ projP_save_mod_proc(
/*
* Free up node list if it contained anything
*/
if (selected_nodes)
free((char *)selected_nodes);
free(selected_nodes);
/*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
@@ -331,15 +332,16 @@ projP_save_as_mod_proc(
*/
vwr_get_cond(v->current_tree, &selected_nodes,
&num_selected, select_fn);
if (num_selected == 0)
if (num_selected == 0) {
free(selected_nodes);
return;
}
obj = (AB_OBJ *)selected_nodes[0]->obj_data;
projP_show_save_as_bil_chooser(AB_toplevel, obj);
if (selected_nodes)
free((char *)selected_nodes);
free((char *)selected_nodes);
/*** DTB_USER_CODE_END ^^^ Add C variables and code above ^^^ ***/
@@ -517,8 +519,10 @@ projP_browse_proc(
vwr_get_cond(v->current_tree, &selected_nodes,
&num_selected, select_fn);
if (num_selected == 0)
if (num_selected == 0) {
free(selected_nodes);
return;
}
for (i = 0; i < num_selected; ++i)
{
@@ -777,12 +781,16 @@ projP_export_mod_proc(
vwr_get_cond(v->current_tree, &selected_nodes,
&num_selected, select_fn);
if (num_selected == 0)
if (num_selected == 0) {
free(selected_nodes);
return;
}
obj = (AB_OBJ *)selected_nodes[0]->obj_data;
proj_show_export_bil_chooser(AB_proj_window, obj);
free(selected_nodes);
/*** DTB_USER_CODE_END ^^^ Add C code above ^^^ ***/
}

View File

@@ -1695,9 +1695,9 @@ proj_save_exploded(
{
util_print_error(rc, new_filename);
obj_set_name(project, old_name);
if (old_name != NULL) util_free(old_name);
if (old_file != NULL) util_free(old_file);
if (old_proj_dir != NULL) util_free(old_proj_dir);
util_free(old_name);
util_free(old_file);
util_free(old_proj_dir);
return rc;
}
obj_set_file(project, new_filename);
@@ -2391,6 +2391,7 @@ proj_set_menus(
*/
vwr_get_cond(proj_vwr->current_tree, &selected_nodes,
&num_selected, select_fn);
free(selected_nodes); /* Unused variable */
switch (chooser_type)
{