mirror of
https://github.com/topjohnwu/selinux.git
synced 2024-11-23 11:39:50 +00:00
secilc: better error handling
Fix a situation where the secilc command line tool could return success even though the compilation failed. $ secilc /dev/null -o /dev/null -f /dev/null Failure reading file: /dev/null $ echo $? 0 Signed-off-by: Nick Kralevich <nnk@google.com>
This commit is contained in:
parent
0a71c5f3eb
commit
2896967775
@ -257,6 +257,7 @@ int main(int argc, char *argv[])
|
||||
rc = stat(argv[i], &filedata);
|
||||
if (rc == -1) {
|
||||
fprintf(stderr, "Could not stat file: %s\n", argv[i]);
|
||||
rc = SEPOL_ERR;
|
||||
goto exit;
|
||||
}
|
||||
file_size = filedata.st_size;
|
||||
@ -265,6 +266,7 @@ int main(int argc, char *argv[])
|
||||
rc = fread(buffer, file_size, 1, file);
|
||||
if (rc != 1) {
|
||||
fprintf(stderr, "Failure reading file: %s\n", argv[i]);
|
||||
rc = SEPOL_ERR;
|
||||
goto exit;
|
||||
}
|
||||
fclose(file);
|
||||
@ -345,11 +347,13 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (file_contexts == NULL) {
|
||||
fprintf(stderr, "Failed to open file_contexts file\n");
|
||||
rc = SEPOL_ERR;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (fwrite(fc_buf, sizeof(char), fc_size, file_contexts) != fc_size) {
|
||||
fprintf(stderr, "Failed to write file_contexts file\n");
|
||||
rc = SEPOL_ERR;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user