diff options
author | Jonathan Corbet <corbet@lwn.net> | 2019-10-29 04:43:29 -0600 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2019-10-29 04:43:29 -0600 |
commit | 822bbba0cabb50825a0ce22707dc45eb82d02853 (patch) | |
tree | ea61d4ca72cb60b4cae8e95f64eefa7cd2a36603 /security/selinux/ss/services.c | |
parent | d41abfd7ae33cd3c1d9189438937d61cb75e690a (diff) | |
parent | 7d194c2100ad2a6dded545887d02754948ca5241 (diff) |
Merge tag 'v5.4-rc4' into docs-next
I need to pick up the independent changes made to
Documentation/core-api/memory-allocation.rst to be able to merge further
work without creating a total mess.
Diffstat (limited to 'security/selinux/ss/services.c')
-rw-r--r-- | security/selinux/ss/services.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index 3a29e7c24ba9..a5813c7629c1 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -1946,7 +1946,14 @@ static int convert_context(struct context *oldc, struct context *newc, void *p) rc = string_to_context_struct(args->newp, NULL, s, newc, SECSID_NULL); if (rc == -EINVAL) { - /* Retain string representation for later mapping. */ + /* + * Retain string representation for later mapping. + * + * IMPORTANT: We need to copy the contents of oldc->str + * back into s again because string_to_context_struct() + * may have garbled it. + */ + memcpy(s, oldc->str, oldc->len); context_init(newc); newc->str = s; newc->len = oldc->len; |