Re: Stale expression reference causing use-after-free

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Catalin,

On Wed, Sep 22, 2010 at 7:08 AM, Catalin Marinas
<catalin.marinas@xxxxxxx> wrote:
> In your patch, could you also remove the additional expr_copy() when
> transforming dir_dep (my first patch which wasn't solving the problem
> but an extra copy is superfluous).
>
isn't there more superfluous stuff ? The following:

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 4fb5902..176618a 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -107,7 +107,6 @@ static struct expr *menu_check_dep(struct expr *e)
 void menu_add_dep(struct expr *dep)
 {
        current_entry->dep = expr_alloc_and(current_entry->dep,
menu_check_dep(dep));
-       current_entry->dir_dep = current_entry->dep;
 }

 void menu_set_type(int type)
@@ -292,8 +291,7 @@ void menu_finalize(struct menu *parent)
                        menu_finalize(menu);
        } else if (sym) {
                /* ignore inherited dependencies for dir_dep */
-               sym->dir_dep.expr = expr_transform(expr_copy(parent->dir_dep));
-               sym->dir_dep.expr = expr_eliminate_dups(sym->dir_dep.expr);
+               sym->dir_dep = parent->dep;

                basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
                basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no);


still seems not to introduce regression, ie. same output with
`silentoldconfig' based on a `randconfig' with this or with the
previous I submitted. The
"expr_eliminate_dups(expr_transform(parent->dep))" has already been
done when computing `basedep'.

Thanks,
 - Arnaud
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux