Quoting Andreas Kirbach ([email protected]):
> Serge E. Hallyn wrote:
> > Hi,
> > 
> > thanks for commenting on this.  Indeed the current behavior is wrong.
> > The right thing is not as simple as returning true though.  If you
> > look at handle_login(), it checks for existed == 1 and continues with
> > the next index if so.  But it will have bailed due to cgfs_create()
> > returning false before that.  That is the bug.  So handle_login()
> > should be doing:
> > 
> >     *existed = false;
> >     if (!cgfs_create(cg, uid, gid, &existed) && !existed) {
> >             mysyslog(LOG_ERR, "Failed to create a cgroup for user %s\n", 
> > user);
> >             return PAM_SESSION_ERR;
> >     }
> >     if (existed) {
> >             idx++;
> >             continue;
> >     }
> > 
> > then !cgfs_create_forone() should return false when existed == true,
> > not true.  I *think* that should handle all the cases correctly.
> > 
> > Does it look right to you?  Do you want to send a patch for this?  (Else
> > I can push it tonight)
> Hi Serge,
> 
> thanks for your feedback.
> 
> I've applied the attached patch and the error messages seem to have gone
> away and I haven't noticed any other problems, but I can't say if this
> is now working correctly or not as I am not familiar with the code.
> 
> I'd therefore highly appreciate if you could push a patch.

Done in git head - thanks for testing!

-serge
_______________________________________________
lxc-users mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-users

Reply via email to