Opening /dev/stdout in Docker
Benjamin Thompson
b.thompson at hydra-billing.com
Fri Aug 5 06:38:30 UTC 2022
Hi Alan
Many thanks for your quick reply.
> However this did not help so I looked at the source code and noticed that
> > FreeRADIUS is opening the file with read/write permissions whereas only
> > write is available:
> >
> >
> https://github.com/FreeRADIUS/freeradius-server/blob/v3.2.x/src/main/exfile.c#L161
> >
> > if (strncmp(filename, "/dev/", 5) == 0) {
> > fd = open(filename, O_RDWR, permissions);
>
> It's possible to add some checks there for permissions, and modify
> O_RDWR for that. I've pushed a fix.
>
> See commit 1abf810524 on GitHub. You should be able to add that to
> 3.2.0 without any issues.
>
I tried the patch against 3.2.0 but it seems to be not detecting the
permissions correctly and is still trying to open the device as read/write.
I don't know why that is but I guess that it might be because it is not a
real file and/or is behind several symlinks.
Just as a test I added:
if (strncmp(filename, "/dev/stdout", 11) == 0) {
oflag = O_WRONLY;
}
This worked as expected.
--
Benjamin Thompson
More information about the Freeradius-Users
mailing list