logger: fix socket owner change 56/97556/2
authorMichal Bloch <m.bloch@samsung.com>
Mon, 14 Nov 2016 11:51:52 +0000 (12:51 +0100)
committerMichal Bloch <m.bloch@samsung.com>
Thu, 24 Nov 2016 13:57:37 +0000 (14:57 +0100)
Change-Id: I742f332bcec3d01fefd2cae3f12d4f7f85878422
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
src/logger/logger.c

index c65a49d..7429117 100644 (file)
@@ -238,12 +238,12 @@ static int change_owners(const char * file, const char * user, const char * grou
        int bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
        if (bufsize == -1)
                bufsize = 1024;
-       _cleanup_free_ char *buffer = (char*)malloc(sizeof(char) * bufsize);
+       _cleanup_free_ char *buffer = (char*)malloc(bufsize);
 
-       if (user && !getpwnam_r(user, &pwd, buffer, sizeof(buffer), &ppwd) && ppwd)
+       if (user && !getpwnam_r(user, &pwd, buffer, bufsize, &ppwd) && ppwd)
                uid = pwd.pw_uid;
 
-       if (group && !getgrnam_r(group, &grp, buffer, sizeof(buffer), &pgrp) && pgrp)
+       if (group && !getgrnam_r(group, &grp, buffer, bufsize, &pgrp) && pgrp)
                gid = grp.gr_gid;
 
        return !chown(file, uid, gid); // ideally would be fchown, but that is broken