Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 16 Sep 2016 10:57:01 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] fix type for ifc_ifcu.ifcu_buf field of struct
 ifconf

On Fri, Sep 16, 2016 at 11:12:14AM +0300, Alexander Monakov wrote:
> On Thu, 15 Sep 2016, Daniel Sabogal wrote:
> > On Thu, Sep 15, 2016 at 4:25 PM, Alexander Monakov <amonakov@...ras.ru> wrote:
> > > Declaration of 'ifru_data' in that header has the same issue.
> > 
> > I originally considered changing this one but had left it out since
> > linux disagree on the type (void *).
> 
> Ah. From looking at pre-git Linux history, it appears that it had
> 'char *', but then it was changed to 'void *' in June 2004 by commit
> '[PATCH] sparse: ->ifr_data annotation' by Al Viro, causing a divergence
> with the Glibc interface.
> 
> FreeBSD also has 'char *' (caddr_t) there, and netdevice(7) manpage documents
> that the Linux interface has 'char *' as well. Thus, the kernel uapi header is
> the odd one out.
> 
> Please wait for further feedback from Rich.

I'd lean towards char* because if applications perform arithmetic on
it expecting it to be char*, void* yields UB. The kernel folks love
their void* arithmetic...

Rich

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.