mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-01 22:05:08 +00:00
b5f03b15f6
Instead of an 0777 chock-full-o-races /tmp/.esd/, use a 0755 ~/.esd/. Also, the ~/.esd/socket of course needs only be 0644. Two macros had to be backed up by functions which returned a static buffer. These macros, ESD_UNIX_SOCKET_DIR and ESD_UNIX_SOCKET_NAME, both return constant strings as the new functions esd_unix_socket_dir() and esd_unix_socket_name(), so the static buffers are not particularly evil. The fix has been tested (without needing recompilation) by the most important EsounD-related apps, esd and XMMS, and works perfectly in both cases. It will be submitted to the EsounD maintainer to be fixed in the source distribution ASAP. Approved by: Security Officer Kris Noticed by: Stan Bubrouski <satan@FASTDIAL.NET>
33 lines
877 B
Plaintext
33 lines
877 B
Plaintext
--- esd.c.orig Tue Apr 4 11:20:08 2000
|
|
+++ esd.c Thu Jun 29 23:34:18 2000
|
|
@@ -219,12 +219,12 @@
|
|
{
|
|
mkdir(ESD_UNIX_SOCKET_DIR,
|
|
S_IRUSR|S_IWUSR|S_IXUSR|
|
|
- S_IRGRP|S_IWGRP|S_IXGRP|
|
|
- S_IROTH|S_IWOTH|S_IXOTH);
|
|
+ S_IRGRP|S_IXGRP|
|
|
+ S_IROTH|S_IXOTH);
|
|
chmod(ESD_UNIX_SOCKET_DIR,
|
|
S_IRUSR|S_IWUSR|S_IXUSR|
|
|
- S_IRGRP|S_IWGRP|S_IXGRP|
|
|
- S_IROTH|S_IWOTH|S_IXOTH);
|
|
+ S_IRGRP|S_IXGRP|
|
|
+ S_IROTH|S_IXOTH);
|
|
}
|
|
if (access(ESD_UNIX_SOCKET_NAME, R_OK | W_OK) == -1)
|
|
{
|
|
@@ -317,9 +317,9 @@
|
|
/* let anyone access esd's socket - but we have authentication so they */
|
|
/* wont get far if they dont have the auth key */
|
|
chmod(ESD_UNIX_SOCKET_NAME,
|
|
- S_IRUSR|S_IWUSR|S_IXUSR|
|
|
- S_IRGRP|S_IWGRP|S_IXGRP|
|
|
- S_IROTH|S_IWOTH|S_IXOTH);
|
|
+ S_IRUSR|S_IWUSR|
|
|
+ S_IRGRP|
|
|
+ S_IROTH);
|
|
}
|
|
if (listen(socket_listen,16)<0)
|
|
{
|