> From: =?UTF-8?q?Erkki=20Sepp=C3=A4l=C3=A4?= <[email protected]>
> Date: Thu, 24 Mar 2011 15:46:39 +0200
> 
> DetermineClientPid didn't close file descriptor if read on
> /proc/pid/cmdline failed. Added close to that path of code.
> 
> Signed-off-by: Erkki Seppälä <[email protected]>
> Reviewed-by: Rami Ylimäki <[email protected]>
> ---
>  os/client.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/os/client.c b/os/client.c
> index 1311855..5c05f9b 100644
> --- a/os/client.c
> +++ b/os/client.c
> @@ -140,8 +140,10 @@ void DetermineClientCmd(pid_t pid, const char **cmdname, 
> const char **cmdargs)
>      /* Read the contents of /proc/pid/cmdline. It should contain the
>       * process name and arguments. */
>      totsize = read(fd, path, sizeof(path));
> -    if (totsize <= 0)
> +    if (totsize <= 0) {
> +        close(fd);
>          return;
> +    }
>      if (close(fd) < 0)
>          return;
>      path[totsize - 1] = '\0';

Actually, checking the return value of close(2) is fairly silly, at
least in this context.  So you could write this as:

        totsize = read(fd, path, sizeof(path));
        close(fd);
        if (totsize <= 0)
            return;

Cheers,

Mark
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to