"put_user" is multiple times evalute on argument
(in asm-generic/uaccess.h).
So this code building argv table include gabage.

Signed-off-by: Yoshinori Sato <ys...@users.sourceforge.jp>

diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
index 811384b..127a198 100644
--- a/fs/binfmt_flat.c
+++ b/fs/binfmt_flat.c
@@ -144,7 +144,7 @@ static unsigned long create_flat_tables(
        put_user(argc, sp);
        current->mm->arg_start = (unsigned long) p;
        while (argc-->0) {
-               put_user((unsigned long) p, argv++);
+               put_user((unsigned long) p, argv); argv++;
                do {
                        get_user(dummy, p); p++;
                } while (dummy);

-- 
Yoshinori Sato
<ys...@users.sourceforge.jp>
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to