Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGXu5jJj2of7te2bFXe5gQjv0_yPXaGyAKCJ6+uXpOMH2weCdA@mail.gmail.com>
Date: Fri, 13 Jan 2017 12:38:54 -0800
From: Kees Cook <keescook@...omium.org>
To: PaX Team <pageexec@...email.hu>
Cc: "AKASHI, Takahiro" <takahiro.akashi@...aro.org>, Mark Rutland <mark.rutland@....com>, 
	park jinbum <jinb.park7@...il.com>, 
	"kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>
Subject: Re: Introduction

On Fri, Jan 13, 2017 at 11:26 AM, Kees Cook <keescook@...omium.org> wrote:
> I did notice too that it seems like it doesn't notice static initializers:
>
> security/tomoyo/common.c: In function ‘tomoyo_load_builtin_policy’:
> security/tomoyo/common.c:2745:27: note: userspace variable will be
> forcibly initialized
>    struct tomoyo_io_buffer head = { };
>                            ^
>
> fs/read_write.c: In function ‘new_sync_write’:
> fs/read_write.c:490:15: note: userspace variable will be forcibly initialized
>   struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
>                ^

If I dump the gimple, it looks like the assignments aren't being
marked as CONSTRUTOR?

fs/read_write.c: In function ‘new_sync_read’:
fs/read_write.c:433:15: note: userspace variable will be forcibly initialized
  struct iovec iov = { .iov_base = buf, .iov_len = len };
               ^
# .MEM_3 = VDEF <.MEM_1(D)>
iov.iov_base = buf_2(D);
# .MEM_5 = VDEF <.MEM_3>
iov.iov_len = len_4(D);
...

Hmmm

-Kees

-- 
Kees Cook
Nexus Security

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.