Re: [PATCH] uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name

From: Mat Martineau
Date: Wed Apr 11 2018 - 12:06:46 EST



On Tue, 10 Apr 2018, David Howells wrote:

Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:

Since this header is in "include/uapi/linux/", apparently people
want to use it in userspace programs -- even in C++ ones.
However, the header uses a C++ reserved keyword ("private"),
so change that to "dh_private" instead to allow the header file
to be used in C++ userspace.

Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=191051

Ugh. Yeah. This is a UAPI breaker, but I think we have to do it, despite it
being 2 years old. Maybe wrap that element in a #ifdef so it's still allowed
in C?

cc'ing Mat Martineau as he's the originator of the structure.

I agree with David's assessment.

The keyctl() system call wrapper is implemented in libkeyutils, which may reduce the need for the proposed ifdef. libkeyutils and its users don't require any updates if this patch is merged because it has its own keyword-free structure definition.

--
Mat Martineau
Intel OTC