On Friday, 17 August 2007 at 18:53, Dominik 'Rathann' Mierzejewski wrote:
> Hello.
>
> Due to the recent glibc changes, applications which use open() in an unsafe
> way (i.e. in O_CREAT mode without setting file permissions) are abort()'ed.
> For more details, see
> https://www.redhat.com/archives/fedora-maintainers/2007-August/msg00293.html
>
> It turns out that OpenDX has one such call in src/exec/libdx/fileio.c.
>
> Please apply the attached patch to fix that.
Updated patch attached, found one more issue.
Regards,
R.
--
Fedora contributor http://fedoraproject.org/wiki/DominikMierzejewski
Livna contributor http://rpm.livna.org MPlayer developer http://mplayerhq.hu
"Faith manages."
-- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"
--- dx-4.4.4/src/exec/libdx/fileio.c.open 2006-01-05 23:55:47.000000000
+0100
+++ dx-4.4.4/src/exec/libdx/fileio.c 2007-08-17 18:43:14.000000000 +0200
@@ -263,7 +263,7 @@ Error _dxffile_open(char *name, int rw)
case 2:/* read/write */
fd = open(name, O_RDWR);
if (fd < 0) {
- fd = open(name, O_WRONLY | O_CREAT);
+ fd = open(name, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
if (fd < 0) {
DXSetError(ERROR_DATA_INVALID,
"can't open/create file '%s'", name);
--- dx-4.4.4/src/exec/libdx/plock.c.open 2002-07-17 06:48:18.000000000
+0200
+++ dx-4.4.4/src/exec/libdx/plock.c 2007-08-17 19:05:14.000000000 +0200
@@ -37,7 +37,8 @@ struct seminfo *__buf; /* buffer fo
#define SEM_FLAGS (IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP |
S_IROTH | S_IWOTH)
#define SHM_FLAGS (IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP |
S_IROTH | S_IWOTH)
-#define OPEN_FLAGS (O_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP |
S_IROTH | S_IWOTH)
+#define OPEN_FLAGS (O_CREAT)
+#define OPEN_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH |
S_IWOTH)
#define IS_MINE(a) (locks->_owner[a] == getpid())
#define SET_OWNER(a) (locks->_owner[a] = getpid())
#define CLEAR_OWNER(a) (locks->_owner[a] = 0)
@@ -268,7 +269,7 @@ PLockInit()
if (stat(LOCKFILE, &statbuf))
{
- int fd = open(LOCKFILE, OPEN_FLAGS);
+ int fd = open(LOCKFILE, OPEN_FLAGS, OPEN_MODE);
if (fd < 0)
{
fprintf(stderr, "initLocks: error accessing locks shared block:
open\n");
_______________________________________________
OpenDX2-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opendx2-dev