From 7f517d761b99078960fbd9333127c735805db88d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 26 Jan 2015 23:19:03 +0100 Subject: [PATCH] macloader: Use fchmod() to change permissions. Change-Id: I18bca9b022dba24403867b022af9d858aad72bc4 Signed-off-by: Andreas Schneider --- macloader/macloader.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/macloader/macloader.c b/macloader/macloader.c index 3e91ec5d..89b657da 100644 --- a/macloader/macloader.c +++ b/macloader/macloader.c @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -164,12 +165,19 @@ int main() { ALOGE("Can't write to %s\n", CID_PATH); return -1; } - fclose(cidfile); - /* set permissions on cid file */ - ALOGD("Setting permissions on %s\n", CID_PATH); + /* Change permissions of cid file */ + ALOGD("Change permissions of %s\n", CID_PATH); + + fd = fileno(cidfile); amode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; - ret = chmod(CID_PATH, amode); + ret = fchmod(fd, amode); + fclose(cidfile); + if (ret != 0) { + ALOGE("Can't set permissions on %s - %s\n", + CID_PATH, strerror(errno)); + return 1; + } char* chown_cmd = (char*) malloc(strlen("chown system ") + strlen(CID_PATH) + 1); char* chgrp_cmd = (char*) malloc(strlen("chgrp system ") + strlen(CID_PATH) + 1); @@ -178,12 +186,6 @@ int main() { system(chown_cmd); system(chgrp_cmd); - if (ret != 0) { - fprintf(stderr, "chmod() on file %s failed\n", CID_PATH); - ALOGE("Can't set permissions on %s\n", CID_PATH); - return ret; - } - } else { /* delete cid file if no specific type */ ALOGD("Deleting file %s\n", CID_PATH);