[systemd-commits] src/shared

Michal Sekletar msekleta at kemper.freedesktop.org
Wed Oct 15 01:58:58 PDT 2014


 src/shared/label.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit 5e78424f4a27c07be50e246308035c877f204038
Author: Michal Sekletar <msekleta at redhat.com>
Date:   Mon Oct 13 15:25:09 2014 +0200

    selinux: fix potential double free crash in child process
    
    Before returning from function we should reset ret to NULL, thus cleanup
    function is nop.
    
    Also context_str() returns pointer to a string containing context but not a
    copy, hence we must make copy it explicitly.

diff --git a/src/shared/label.c b/src/shared/label.c
index b6af38d..69d4616 100644
--- a/src/shared/label.c
+++ b/src/shared/label.c
@@ -334,7 +334,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) {
         }
 
         freecon(mycon);
-        mycon = context_str(bcon);
+        mycon = strdup(context_str(bcon));
         if (!mycon) {
                 r = -errno;
                 goto out;
@@ -348,6 +348,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) {
         }
 
         *label = ret;
+        ret = NULL;
         r = 0;
 
 out:



More information about the systemd-commits mailing list