public inbox for kernel-janitors@vger.kernel.org
 help / color / mirror / Atom feed
* [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast
@ 2012-10-12 16:56 Fengguang Wu
  2012-10-12 17:46 ` [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a ca Kees Cook
  2012-10-12 18:29 ` Fengguang Wu
  0 siblings, 2 replies; 3+ messages in thread
From: Fengguang Wu @ 2012-10-12 16:56 UTC (permalink / raw)
  To: kernel-janitors

Hi Kees,

FYI, there are new compile warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git akpm
head:   04b956faad392f46c9a234962a9990196b8e48fc
commit: b8763455880e371a81b07599bc66ae94f96dc6d6 [18/86] kernel/sys.c: fix stack memory content leak via UNAME26
config: mn10300-asb2364_defconfig # make ARCH=mn10300 asb2364_defconfig

All warnings:

kernel/sys.c: In function 'override_release':
kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]

vim +1287 kernel/sys.c

be27425d Andi Kleen     2011-08-19  1271  
be27425d Andi Kleen     2011-08-19  1272  	if (current->personality & UNAME26) {
b8763455 Kees Cook      2012-10-12  1273  		const char *rest = UTS_RELEASE;
b8763455 Kees Cook      2012-10-12  1274  		char buf[65] = { 0 };
be27425d Andi Kleen     2011-08-19  1275  		int ndots = 0;
be27425d Andi Kleen     2011-08-19  1276  		unsigned v;
b8763455 Kees Cook      2012-10-12  1277  		size_t copy;
be27425d Andi Kleen     2011-08-19  1278  
be27425d Andi Kleen     2011-08-19  1279  		while (*rest) {
be27425d Andi Kleen     2011-08-19  1280  			if (*rest = '.' && ++ndots >= 3)
be27425d Andi Kleen     2011-08-19  1281  				break;
be27425d Andi Kleen     2011-08-19  1282  			if (!isdigit(*rest) && *rest != '.')
be27425d Andi Kleen     2011-08-19  1283  				break;
be27425d Andi Kleen     2011-08-19  1284  			rest++;
be27425d Andi Kleen     2011-08-19  1285  		}
be27425d Andi Kleen     2011-08-19  1286  		v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
b8763455 Kees Cook      2012-10-12 @1287  		copy = min(sizeof(buf), max_t(size_t, 1, len));
b8763455 Kees Cook      2012-10-12  1288  		copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);
b8763455 Kees Cook      2012-10-12  1289  		ret = copy_to_user(release, buf, copy + 1);
be27425d Andi Kleen     2011-08-19  1290  	}
be27425d Andi Kleen     2011-08-19  1291  	return ret;
be27425d Andi Kleen     2011-08-19  1292  }
be27425d Andi Kleen     2011-08-19  1293  
e48fbb69 Heiko Carstens 2009-01-14  1294  SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
^1da177e Linus Torvalds 2005-04-16  1295  {

---
0-DAY kernel build testing backend         Open Source Technology Center
Fengguang Wu, Yuanhan Liu                              Intel Corporation

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a ca
  2012-10-12 16:56 [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast Fengguang Wu
@ 2012-10-12 17:46 ` Kees Cook
  2012-10-12 18:29 ` Fengguang Wu
  1 sibling, 0 replies; 3+ messages in thread
From: Kees Cook @ 2012-10-12 17:46 UTC (permalink / raw)
  To: kernel-janitors

On Fri, Oct 12, 2012 at 9:56 AM, Fengguang Wu <fengguang.wu@intel.com> wrote:
> FYI, there are new compile warnings show up in
>
> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git akpm
> head:   04b956faad392f46c9a234962a9990196b8e48fc
> commit: b8763455880e371a81b07599bc66ae94f96dc6d6 [18/86] kernel/sys.c: fix stack memory content leak via UNAME26
> config: mn10300-asb2364_defconfig # make ARCH=mn10300 asb2364_defconfig
>
> All warnings:
>
> kernel/sys.c: In function 'override_release':
> kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]

Hrm, I don't see this on my builds. Is this check specific to mn10300
in some way?

> vim +1287 kernel/sys.c
>
> be27425d Andi Kleen     2011-08-19  1271
> be27425d Andi Kleen     2011-08-19  1272        if (current->personality & UNAME26) {
> b8763455 Kees Cook      2012-10-12  1273                const char *rest = UTS_RELEASE;
> b8763455 Kees Cook      2012-10-12  1274                char buf[65] = { 0 };
> be27425d Andi Kleen     2011-08-19  1275                int ndots = 0;
> be27425d Andi Kleen     2011-08-19  1276                unsigned v;
> b8763455 Kees Cook      2012-10-12  1277                size_t copy;
> be27425d Andi Kleen     2011-08-19  1278
> be27425d Andi Kleen     2011-08-19  1279                while (*rest) {
> be27425d Andi Kleen     2011-08-19  1280                        if (*rest = '.' && ++ndots >= 3)
> be27425d Andi Kleen     2011-08-19  1281                                break;
> be27425d Andi Kleen     2011-08-19  1282                        if (!isdigit(*rest) && *rest != '.')
> be27425d Andi Kleen     2011-08-19  1283                                break;
> be27425d Andi Kleen     2011-08-19  1284                        rest++;
> be27425d Andi Kleen     2011-08-19  1285                }
> be27425d Andi Kleen     2011-08-19  1286                v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
> b8763455 Kees Cook      2012-10-12 @1287                copy = min(sizeof(buf), max_t(size_t, 1, len));

Should I change this to min_t(size_t, sizeof(buf), max_t(size_t, 1, len)) ?

Thanks!

-Kees

-- 
Kees Cook
Chrome OS Security

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a ca
  2012-10-12 16:56 [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast Fengguang Wu
  2012-10-12 17:46 ` [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a ca Kees Cook
@ 2012-10-12 18:29 ` Fengguang Wu
  1 sibling, 0 replies; 3+ messages in thread
From: Fengguang Wu @ 2012-10-12 18:29 UTC (permalink / raw)
  To: kernel-janitors

On Fri, Oct 12, 2012 at 10:46:34AM -0700, Kees Cook wrote:
> On Fri, Oct 12, 2012 at 9:56 AM, Fengguang Wu <fengguang.wu@intel.com> wrote:
> > FYI, there are new compile warnings show up in
> >
> > tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git akpm
> > head:   04b956faad392f46c9a234962a9990196b8e48fc
> > commit: b8763455880e371a81b07599bc66ae94f96dc6d6 [18/86] kernel/sys.c: fix stack memory content leak via UNAME26
> > config: mn10300-asb2364_defconfig # make ARCH=mn10300 asb2364_defconfig
> >
> > All warnings:
> >
> > kernel/sys.c: In function 'override_release':
> > kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]
> 
> Hrm, I don't see this on my builds. Is this check specific to mn10300
> in some way?

Maybe it's more than mn10300.

(gdb) whatis sizeof(long)
type = int

And size_t (__kernel_size_t) is defined to "unsigned int".

> > vim +1287 kernel/sys.c
> >
> > be27425d Andi Kleen     2011-08-19  1271
> > be27425d Andi Kleen     2011-08-19  1272        if (current->personality & UNAME26) {
> > b8763455 Kees Cook      2012-10-12  1273                const char *rest = UTS_RELEASE;
> > b8763455 Kees Cook      2012-10-12  1274                char buf[65] = { 0 };
> > be27425d Andi Kleen     2011-08-19  1275                int ndots = 0;
> > be27425d Andi Kleen     2011-08-19  1276                unsigned v;
> > b8763455 Kees Cook      2012-10-12  1277                size_t copy;
> > be27425d Andi Kleen     2011-08-19  1278
> > be27425d Andi Kleen     2011-08-19  1279                while (*rest) {
> > be27425d Andi Kleen     2011-08-19  1280                        if (*rest = '.' && ++ndots >= 3)
> > be27425d Andi Kleen     2011-08-19  1281                                break;
> > be27425d Andi Kleen     2011-08-19  1282                        if (!isdigit(*rest) && *rest != '.')
> > be27425d Andi Kleen     2011-08-19  1283                                break;
> > be27425d Andi Kleen     2011-08-19  1284                        rest++;
> > be27425d Andi Kleen     2011-08-19  1285                }
> > be27425d Andi Kleen     2011-08-19  1286                v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
> > b8763455 Kees Cook      2012-10-12 @1287                copy = min(sizeof(buf), max_t(size_t, 1, len));
> 
> Should I change this to min_t(size_t, sizeof(buf), max_t(size_t, 1, len)) ?

clamp_t() looks easier. :-)

Thanks,
Fengguang

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-10-12 18:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-12 16:56 [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast Fengguang Wu
2012-10-12 17:46 ` [next:akpm 18/86] kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a ca Kees Cook
2012-10-12 18:29 ` Fengguang Wu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox