Quoting Dan Smith ([email protected]):
> SH> why only free iov_base if ret!=0?
> 
> Because I was diagnosing a crash that only seemed to happen when I
> free()'d the buffer after it was used by sendmsg() and I forgot to
> remove this :(
> 
> >> +  a->sk_peercred.pid = task_tgid_vnr(current);
> >> +  a->sk_peercred.uid = ctx->realcred->uid;
> 
> SH> I don't know how much it matters, but of course root could be
> SH> restarting a set of tasks owned by several non-root uids, and the
> SH> peercred.uid's might need to be something other than
> ctx-> realcred->uid.  Or not?
> 
> Oh, so you're suggesting I use ctx->ecred instead?  I didn't actually
> notice the double declaration in the ckpt_ctx, but I guess that would
> be better.

No, I'm suggesting that the checkpointed application might have had
tasks owned by uids 0, 3, 55, and 1001, and a.peercred.uid might have
been 1001, right?  current, ctx->realcred->uid, and ctx->ecred might
all be different uids.  I think you just need to checkpoint the uid
(eventually an objref to a checkpointed user struct so we can also
catch the user namespace).

-serge
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to