From b84e36d717a706d11d8e59812bd17eced6b5bb52 Mon Sep 17 00:00:00 2001 From: tron Date: Mon, 12 Sep 2005 09:53:56 +0000 Subject: [PATCH] (svn r2946) Remove redundant calls, simplify a check and terminate the argument list of execlp() as suggested by the manpage to make it correctly work on 64bit platforms --- music/extmidi.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/music/extmidi.c b/music/extmidi.c index 9bd946f4e3..d474b3acb3 100644 --- a/music/extmidi.c +++ b/music/extmidi.c @@ -69,17 +69,13 @@ static void DoPlay(void) int d; close(0); - close(1); - close(2); d = open("/dev/null", O_RDONLY); - if (d != -1) { - if (dup2(d, 1) != -1 && dup2(d, 2) != -1) { - #if defined(MIDI_ARG) - execlp(msf.extmidi, "extmidi", MIDI_ARG, _midi.song, NULL); - #else - execlp(msf.extmidi, "extmidi", _midi.song, NULL); - #endif - } + if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) { + #if defined(MIDI_ARG) + execlp(msf.extmidi, "extmidi", MIDI_ARG, _midi.song, (char*)0); + #else + execlp(msf.extmidi, "extmidi", _midi.song, (char*)0); + #endif } _exit(1); }