uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name
diff mbox

Message ID 1735b3a4-2792-0ce4-3bf4-94fee5b50ff6@infradead.org
State New
Headers show

Commit Message

Randy Dunlap April 6, 2018, 6:58 p.m. UTC
From: Randy Dunlap <rdunlap@infradead.org>

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

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: David Howells <dhowells@redhat.com>
Cc: James Morris <jmorris@namei.org>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Cc: keyrings@vger.kernel.org
Cc: linux-security-module@vger.kernel.org
---
 include/uapi/linux/keyctl.h |    2 +-
 security/keys/dh.c          |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Howells April 10, 2018, 8:47 a.m. UTC | #1
Randy Dunlap <rdunlap@infradead.org> 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.

David
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sasha Levin April 10, 2018, 1:50 p.m. UTC | #2
Hi,

[This is an automated email]

This commit has been processed because it contains a "Fixes:" tag,
fixing commit: .

The bot has also determined it's probably a bug fixing patch. (score: 15.7018)

The bot has tested the following trees: v4.16.1, v4.15.16, v4.14.33, v4.9.93, v4.4.127.

v4.16.1: Build OK!
v4.15.16: Build OK!
v4.14.33: Build OK!
v4.9.93: Failed to apply! Possible dependencies:
    7cbe0932c2f2 ("KEYS: Convert KEYCTL_DH_COMPUTE to use the crypto KPP API")

v4.4.127: Failed to apply! Possible dependencies:
    7cbe0932c2f2 ("KEYS: Convert KEYCTL_DH_COMPUTE to use the crypto KPP API")
    ddbb41148724 ("KEYS: Add KEYCTL_DH_COMPUTE command")


--
Thanks,
Sasha--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mat Martineau April 11, 2018, 4:01 p.m. UTC | #3
On Tue, 10 Apr 2018, David Howells wrote:

> Randy Dunlap <rdunlap@infradead.org> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

--- lnx-416.orig/include/uapi/linux/keyctl.h
+++ lnx-416/include/uapi/linux/keyctl.h
@@ -65,7 +65,7 @@ 
 
 /* keyctl structures */
 struct keyctl_dh_params {
-	__s32 private;
+	__s32 dh_private;
 	__s32 prime;
 	__s32 base;
 };
--- lnx-416.orig/security/keys/dh.c
+++ lnx-416/security/keys/dh.c
@@ -307,7 +307,7 @@  long __keyctl_dh_compute(struct keyctl_d
 	}
 	dh_inputs.g_size = dlen;
 
-	dlen = dh_data_from_key(pcopy.private, &dh_inputs.key);
+	dlen = dh_data_from_key(pcopy.dh_private, &dh_inputs.key);
 	if (dlen < 0) {
 		ret = dlen;
 		goto out2;