It seems that pathname "prefixing" is not performed for unix domain
socket calls in linux emulation e.g. "/compat/linux" prefix is never
tried to be prepended for bind() and connect() calls.
When mixed with filesystem calls this leads to linux applications
failing in scenarios like this:
//this will create /compat/linux/tmp/foo/ directory
s = socket(AF_LOCAL, SOCK_DGRAM, PF_LOCAL);
addr.sun_family = AF_LOCAL;
bind(s, (struct sockaddr *) &addr, SUN_LEN(&addr));
//this will try to bind socket in /tmp/foo/ directory
//which does not exist
I have experinced this problem on FreeBSD 5.2.1 with two real-life
IBM WebSphere MQ 5.3
fix should not be very hard to implement, but I'd prefer that someone more
familiar with the code would do it (someone who wrote the similar code for
How-To-Repeat: Existence of this problem can be easily verified using a small program
with the above code (make sure /tmp/foo directory is not existant).
Reassign to appropriate mailing list.
Does this problem still persists on a recent FreeBSD?
If yes, I suggest to try to come up with a patch, since most
of the problems are fixed by people which need a particular
feature (we don't have a maintainer for the linuxolator).
Feedback reveived, the bug still exist in -current.
ISTM 'analyzed' is a better state for this.
Revert accidental status change.
For bugs that match the following
- Status Is In progress
- Untouched since 2018-01-01.
- Affects Base System OR Documentation
Reset to open status.
I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.