On Fri, Sep 21, 2018 at 5:12 PM Nick Kralevich via Selinux <
[email protected]> wrote:

> 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
>
> Fix a few other minor oversights while I'm here.
>

I'd prefer this split into at least 2 patches on the off chance we
need to revert the actual code changes we don't lose the spelling
and whitespace fixes. Otherwise LGTM.


>
> Signed-off-by: Nick Kralevich <[email protected]>
> ---
>  libsepol/include/sepol/errcodes.h | 2 +-
>  secilc/secilc.c                   | 8 ++++++--
>  2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/libsepol/include/sepol/errcodes.h
> b/libsepol/include/sepol/errcodes.h
> index 0136564a..6e9ff316 100644
> --- a/libsepol/include/sepol/errcodes.h
> +++ b/libsepol/include/sepol/errcodes.h
> @@ -12,7 +12,7 @@ extern "C" {
>  #define SEPOL_OK             0
>
>  /* These first error codes are defined for compatibility with
> - * previous version of libsepol. In the future, custome error
> + * previous version of libsepol. In the future, custom error
>   * codes that don't map to system error codes should be defined
>   * outside of the range of system error codes.
>   */
> diff --git a/secilc/secilc.c b/secilc/secilc.c
> index 0be6975b..8578cc26 100644
> --- a/secilc/secilc.c
> +++ b/secilc/secilc.c
> @@ -257,14 +257,16 @@ 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;
> +               file_size = filedata.st_size;
>
>                 buffer = malloc(file_size);
>                 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;
>         }
>
> --
> 2.19.0.444.g18242da7ef-goog
>
> _______________________________________________
> Selinux mailing list
> [email protected]
> To unsubscribe, send email to [email protected].
> To get help, send an email containing "help" to
> [email protected].
>
_______________________________________________
Selinux mailing list
[email protected]
To unsubscribe, send email to [email protected].
To get help, send an email containing "help" to [email protected].

Reply via email to