On 10/20/2014 02:53 PM, Jakub Hrozek wrote:
On Mon, Oct 20, 2014 at 01:24:38PM +0200, Jakub Hrozek wrote:
I found a bug in the IFP initialization. The rest of the patches is
unchanged, only ifpsrv.c changed.
Sorry, one more respin. I added a patch to chown the debug logs.
Initially, I wanted to open the debug logs as root and then just pass
the fd, but then I realized this wouldn't work for logfile rotation. So
I'm afraid we need to chown the log files..

The other patches are unchanged, just a new one was added.


_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

The changes LGTM I have just one nitpick

+/* In cases SSSD used to run as the root user, but runs as the SSSD user now,
+ * we need to chown the log files
+ */
+int chown_debug_file(const char *filename,
+                     uid_t uid, gid_t gid)
+{
+    char *logpath;
+    const char *log_file;
+    errno_t ret;
+
+    if (filename == NULL) {
+        log_file = debug_log_file;
+    } else {
+        log_file = filename;
+    }
+
+    ret = asprintf(&logpath, "%s/%s.log", LOG_PATH, log_file);
+    if (ret == -1) {
+        return ENOMEM;
+    }
+
+    errno = 0;
No need to set errno as we check ret val of chown and not directly errno.

+    ret = chown(logpath, uid, gid);
+    free(logpath);
+    if (ret != 0) {
+        ret = errno;
+        DEBUG(SSSDBG_FATAL_FAILURE, "chown failed for [%s]: [%d]\n",
+              log_file, ret);
+        return ret;
+    }
+
+    return EOK;
+}
+