strippwd patch against CVS20041108

Leonard den Ottolander leonard at den.ottolander.nl
Wed Nov 10 16:22:24 UTC 2004


Hello Andrew,

I do have some questions about add_new_entry_cmd() in its current form.
Comments inlined in C99 style comments.

static void add_new_entry_cmd (void)
{
    char *title, *url, *to_free;
    int ret;

    /* Take current directory as default value for input fields */
    to_free = title = url = strip_password (g_strdup
(current_panel->cwd), 1);

// to_free, title and url now all point to the same string, right?
// They are not all duplicates?

    ret = add_new_entry_input (_("New hotlist entry"), _("Directory
label"),
			       _("Directory path"), "[Hotlist]", &title, &url);
    g_free (to_free);
// So this g_free() frees that string which is now invalid

    if (!ret)
	return;
    if (!title || !*title || !url || !*url) {
	g_free (title);
	g_free (url);
// But here you still g_free() both of them
	return;
    }

    if (ret == B_ENTER || ret == B_APPEND)
	add2hotlist (title, url, HL_TYPE_ENTRY, HL_AFTER_CURRENT);
    else
	add2hotlist (title, url, HL_TYPE_ENTRY, HL_BEFORE_CURRENT);

// And here you pass them as arguments.
    hotlist_state.modified = 1;
}

Leonard.

-- 
mount -t life -o ro /dev/dna /genetic/research





More information about the mc-devel mailing list