lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3402120c0709210547mb66162fv759a8f088beb0437@mail.gmail.com>
Date:	Fri, 21 Sep 2007 14:47:04 +0200
From:	"Arvin Moezzi" <moezzia@...il.com>
To:	"James Pearson" <james-p@...ing-picture.com>,
	linux-kernel@...r.kernel.org
Cc:	aarapov@...hat.com, akpm@...ux-foundation.org, hpa@...or.com
Subject: Re: [PATCH -mm] Don't truncate /proc/PID/environ at 4096 characters

> >>+
> >>+               if (copy_to_user(buf, page, retval)) {
> >
> >                                                                 ^^^^
> > shouldn't you only copy min(count,retval) bytes? otherwise you could
> > write beyond the users buffer "buf", right?
>
> AFAIK, 'retval' can never be greater than 'this_len', which can never be
> greater than 'max_len', which can never be greater than 'count'

I think that's not true. 'count' is changing through the iteration.
The difference in the mem_read():

* while (count > 0) {
*     int this_len, retval;
*
*      this_len = (count > PAGE_SIZE) ? PAGE_SIZE : count;
*      retval = access_process_vm(task, src, page, this_len, 0);
*
*      ...
* }

is the fact, that this_len = min(PAGE_SIZE, count) is in the
iteration block, hence retval <= this_len <= count in each iteration
step. So this is ok. But IMHO in your code 'retval' may be bigger than
'count' in the last iteration of the block, because 'max_len' is fix
through your iteration but 'count' is changing. Or am i missing
something?

> James Pearson

Arvin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ