"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