Thread (2 messages) flat view 2 messages, 2 authors, 2009-07-08

Re: [PATCH 1/2] c/r: Add AF_UNIX support (v5)

From: Oren Laadan <hidden>
Date: 2009-07-08 18:17:04


Dan Smith wrote:
OL> It will mostly fix the buffer limits, but not entirely: if the
OL> original socket first raised the limits above defualt, then sent
OL> data (not read by peer), then you'll still need to adjust the
OL> limit before restoring the buffers.

If we cap the buffers in the checkpoint image to the current system
limit (sysctl) and then set the per-socket buffer limit (after reading
them in) to the value in the checkpoint image then we get the desired
result, right?
Hmmm.... still not -- if user has CAP_NET_ADMIN then there is
no upper bound on so_{snd,rcv}buf.


So I guess the right way to do it is: (1) set buf size to the size
of saved data, (2) populate buffer, (3) restore so_{snd,rcv}buf.

#1 and #3 need to be done under the same security restrictions,
of course, as any change to the buffer bounds.

Oren.
OL> I can't predict the future, but it's been there forever...

Yeah, after I sent that I remembered that the magic 108 is in the
sockaddr_un structure which is a userspace API and therefore not
likely to change.

OL> But the point is that I would interpret ENOSPC as "storage/space
OL> is exhausted", while here the error is that this value is simply
OL> invalid for the particular kernel on which the restart occurs.

Yep, fair enough.

OL> In the original system, once the file becomes unreachable it
OL> cannot be made reachable again by simple (re)mounting, IOW it can
OL> no longer be connected-to.

Ah, I thought you meant "was reachable on the source system and not
reachable on the target system".  I'm with you now :)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help