On Wed, 2014-08-20 at 18:59 +0200, Thomas Haller wrote:
> Signed-off-by: Thomas Haller <[email protected]>

Looks fine to me.

> ---
>  src/nm-manager.c | 27 ++++++++++++++++-----------
>  1 file changed, 16 insertions(+), 11 deletions(-)
> 
> diff --git a/src/nm-manager.c b/src/nm-manager.c
> index 2224149..80291be 100644
> --- a/src/nm-manager.c
> +++ b/src/nm-manager.c
> @@ -1974,6 +1974,7 @@ read_device_factory_paths ()
>       paths = g_array_new (FALSE, FALSE, sizeof (struct 
> read_device_factory_paths_data));
>  
>       while ((item = g_dir_read_name (dir))) {
> +             int errsv;
>               struct read_device_factory_paths_data data;
>  
>               if (!g_str_has_prefix (item, PLUGIN_PREFIX))
> @@ -1983,21 +1984,25 @@ read_device_factory_paths ()
>  
>               data.path = g_build_filename (NMPLUGINDIR, item, NULL);
>  
> -             if (stat (data.path, &data.st) != 0)
> -                     goto continue_with_error;
> +             if (stat (data.path, &data.st) != 0) {
> +                     errsv = errno;
> +                     nm_log_warn (LOGD_HW, "device plugin: skip invalid file 
> %s (error during stat: %s)", data.path, strerror (errsv));
> +                     goto NEXT;
> +             }
>               if (!S_ISREG (data.st.st_mode))
> -                     goto continue_silently;
> -             if (data.st.st_uid != 0)
> -                     goto continue_with_error;
> -             if (data.st.st_mode & (S_IWGRP | S_IWOTH | S_ISUID))
> -                     goto continue_with_error;
> +                     goto NEXT;
> +             if (data.st.st_uid != 0) {
> +                     nm_log_warn (LOGD_HW, "device plugin: skip invalid file 
> %s (file must be owned by root)", data.path);
> +                     goto NEXT;
> +             }
> +             if (data.st.st_mode & (S_IWGRP | S_IWOTH | S_ISUID)) {
> +                     nm_log_warn (LOGD_HW, "device plugin: skip invalid file 
> %s (invalid file permissions)", data.path);
> +                     goto NEXT;
> +             }
>  
>               g_array_append_val (paths, data);
>               continue;
> -
> -continue_with_error:
> -             nm_log_dbg (LOGD_HW, "device plugin: skip invalid file %s", 
> data.path);
> -continue_silently:
> +NEXT:
>               g_free (data.path);
>       }
>       g_dir_close (dir);


_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to