Fix dangling pointers causing erratic timer behaviour (affects taskbar with spacing); use calloc instead of malloc for safer initializations

git-svn-id: http://tint2.googlecode.com/svn/trunk@758 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
o9000
2015-04-17 20:17:25 +00:00
committed by mrovi9000@gmail.com
parent 778b9f0ebf
commit 66cae4bb7c
17 changed files with 135 additions and 123 deletions

View File

@@ -52,7 +52,7 @@ void expand_exec(DesktopEntry *entry, const char *path)
// %c -> Name
// %k -> path
if (entry->exec) {
char *exec2 = malloc(strlen(entry->exec) + (entry->name ? strlen(entry->name) : 1) + (entry->icon ? strlen(entry->icon) : 1) + 100);
char *exec2 = calloc(strlen(entry->exec) + (entry->name ? strlen(entry->name) : 1) + (entry->icon ? strlen(entry->icon) : 1) + 100, 1);
char *p, *q;
// p will never point to an escaped char
for (p = entry->exec, q = exec2; *p; p++, q++) {

View File

@@ -561,8 +561,8 @@ char *get_icon_path_helper(GSList *themes, const char *icon_name, int size)
char *theme_name = ((IconTheme*)theme->data)->name;
char *dir_name = ((IconThemeDir*)dir->data)->name;
char *extension = (char*) ext->data;
char *file_name = malloc(strlen(base_name) + strlen(theme_name) +
strlen(dir_name) + strlen(icon_name) + strlen(extension) + 100);
char *file_name = calloc(strlen(base_name) + strlen(theme_name) +
strlen(dir_name) + strlen(icon_name) + strlen(extension) + 100, 1);
// filename = directory/$(themename)/subdirectory/iconname.extension
sprintf(file_name, "%s/%s/%s/%s%s", base_name, theme_name, dir_name, icon_name, extension);
if (DEBUG_ICON_SEARCH)
@@ -620,8 +620,8 @@ char *get_icon_path_helper(GSList *themes, const char *icon_name, int size)
for (ext = extensions; ext; ext = g_slist_next(ext)) {
char *base_name = (char*) base->data;
char *extension = (char*) ext->data;
char *file_name = malloc(strlen(base_name) + strlen(icon_name) +
strlen(extension) + 100);
char *file_name = calloc(strlen(base_name) + strlen(icon_name) +
strlen(extension) + 100, 1);
// filename = directory/iconname.extension
sprintf(file_name, "%s/%s%s", base_name, icon_name, extension);
if (DEBUG_ICON_SEARCH)

View File

@@ -391,7 +391,7 @@ void free_icon(Imlib_Image icon)
void launcher_action(LauncherIcon *icon, XEvent* evt)
{
char *cmd = malloc(strlen(icon->cmd) + 10);
char *cmd = calloc(strlen(icon->cmd) + 10, 1);
sprintf(cmd, "(%s&)", icon->cmd);
#if HAVE_SN
SnLauncherContext* ctx;

View File

@@ -235,14 +235,14 @@ static XSettingsList *parse_settings (unsigned char *data, size_t len)
goto out;
}
setting = malloc (sizeof *setting);
setting = calloc (1, sizeof *setting);
if (!setting) {
result = XSETTINGS_NO_MEM;
goto out;
}
setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */
setting->name = malloc (name_len + 1);
setting->name = calloc (name_len + 1, 1);
if (!setting->name) {
result = XSETTINGS_NO_MEM;
goto out;
@@ -276,7 +276,7 @@ static XSettingsList *parse_settings (unsigned char *data, size_t len)
goto out;
}
setting->data.v_string = malloc (v_int + 1);
setting->data.v_string = calloc (v_int + 1, 1);
if (!setting->data.v_string) {
result = XSETTINGS_NO_MEM;
goto out;
@@ -400,7 +400,7 @@ XSettingsClient *xsettings_client_new (Display *display, int screen, XSettingsNo
{
XSettingsClient *client;
client = malloc (sizeof *client);
client = calloc (1, sizeof *client);
if (!client)
return NULL;

View File

@@ -34,12 +34,12 @@ xsettings_setting_copy (XSettingsSetting *setting)
XSettingsSetting *result;
size_t str_len;
result = malloc (sizeof *result);
result = calloc (1, sizeof *result);
if (!result)
return NULL;
str_len = strlen (setting->name);
result->name = malloc (str_len + 1);
result->name = calloc (str_len + 1, 1);
if (!result->name)
goto err;
@@ -57,7 +57,7 @@ xsettings_setting_copy (XSettingsSetting *setting)
break;
case XSETTINGS_TYPE_STRING:
str_len = strlen (setting->data.v_string);
result->data.v_string = malloc (str_len + 1);
result->data.v_string = calloc (str_len + 1, 1);
if (!result->data.v_string)
goto err;
@@ -90,7 +90,7 @@ xsettings_list_copy (XSettingsList *list)
{
XSettingsList *new_node;
new_node = malloc (sizeof *new_node);
new_node = calloc (1, sizeof *new_node);
if (!new_node)
goto error;
@@ -180,7 +180,7 @@ xsettings_list_insert (XSettingsList **list,
XSettingsList *iter;
XSettingsList *last = NULL;
node = malloc (sizeof *node);
node = calloc (1, sizeof *node);
if (!node)
return XSETTINGS_NO_MEM;
node->setting = setting;