On 03/04/2013 03:43 PM, Serge Hallyn wrote:
> As Kees pointed out, write() errors can be delayed and returned as
> close() errors.  So don't ignore error on close when writing the
> userns id mapping.
> 
> Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com>

Acked-by: Stéphane Graber <stgra...@ubuntu.com>

> ---
>  src/lxc/conf.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/lxc/conf.c b/src/lxc/conf.c
> index 04ab8b8..7d70c97 100644
> --- a/src/lxc/conf.c
> +++ b/src/lxc/conf.c
> @@ -2447,7 +2447,7 @@ int lxc_assign_network(struct lxc_list *network, pid_t 
> pid)
>  int add_id_mapping(enum idtype idtype, pid_t pid, uid_t host_start, uid_t 
> ns_start, int range)
>  {
>       char path[PATH_MAX];
> -     int ret;
> +     int ret, closeret;
>       FILE *f;
>  
>       ret = snprintf(path, PATH_MAX, "/proc/%d/%cid_map", pid, idtype == 
> ID_TYPE_UID ? 'u' : 'g');
> @@ -2462,9 +2462,11 @@ int add_id_mapping(enum idtype idtype, pid_t pid, 
> uid_t host_start, uid_t ns_sta
>       }
>       ret = fprintf(f, "%d %d %d", ns_start, host_start, range);
>       if (ret < 0)
> -             perror("write");
> -     fclose(f);
> -     return ret < 0 ? ret : 0;
> +             SYSERROR("writing id mapping");
> +     closeret = fclose(f);
> +     if (closeret)
> +             SYSERROR("writing id mapping");
> +     return ret < 0 ? ret : closeret;
>  }
>  
>  int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
> 


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to