Re: [PATCH] solo6x10: use designated initializers

From: Kees Cook
Date: Fri Jan 06 2017 - 16:21:25 EST


On Mon, Dec 19, 2016 at 11:56 AM, Andrey Utkin
<andrey.utkin@xxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, Dec 16, 2016 at 05:05:36PM -0800, Kees Cook wrote:
>> Prepare to mark sensitive kernel structures for randomization by making
>> sure they're using designated initializers. These were identified during
>> allyesconfig builds of x86, arm, and arm64, with most initializer fixes
>> extracted from grsecurity.
>
> Ok I've reviewed all the patchset, googled a bit and now I see what's
> going on.
>
>>
>> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
>> ---
>> drivers/media/pci/solo6x10/solo6x10-g723.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
>> index 6a35107aca25..36e93540bb49 100644
>> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
>> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
>> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
>>
>> int solo_g723_init(struct solo_dev *solo_dev)
>> {
>> - static struct snd_device_ops ops = { NULL };
>> + static struct snd_device_ops ops = { };
>
> I'm not that keen on syntax subtleties, but...
> * Empty initializer is not quite "designated" as I can judge.
> * From brief googling I see that empty initializer is not valid in
> some C standards.
>
> Since `ops` is static, what about this?
> For the variant given below, you have my signoff.
>
>> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
>> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
>> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
>>
>> int solo_g723_init(struct solo_dev *solo_dev)
>> {
>> - static struct snd_device_ops ops = { NULL };
>> + static struct snd_device_ops ops;

Ah! Yes, thanks. That works fine too. :) Can this be const as well?

-Kees

--
Kees Cook
Nexus Security