[systemd-devel] [PATCH 2/2] logind: do not continue when runtime creation path fails

Lennart Poettering lennart at poettering.net
Tue Feb 10 03:30:30 PST 2015


On Sun, 08.02.15 22:21, Philippe De Swert (philippedeswert at gmail.com) wrote:

> In user_mkdir_runtime_path() there is no need to continue if the
> creation of the directory fails for whatever reason, as subsequent
> actions on that directory will fail anyway.
> 
> Found with Coverity. Fixes: CID#1237538
> ---
>  src/login/logind-user.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/login/logind-user.c b/src/login/logind-user.c
> index 7b40ef5..a329457 100644
> --- a/src/login/logind-user.c
> +++ b/src/login/logind-user.c
> @@ -322,7 +322,8 @@ static int user_mkdir_runtime_path(User *u) {
>          if (path_is_mount_point(p, false) <= 0) {
>                  _cleanup_free_ char *t = NULL;
>  
> -                mkdir(p, 0700);
> +                if(mkdir(p, 0700) < 0)
> +                         goto fail;

No, it's completely OK if this fails, and it is very likely that it
*will* fail, since the dir might already exist, and we thus get
EEXIST.

This is a candidate for prefixing with (void), to tell Coverity that
we knowingly ignore the return value.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list