From: Andre Noll Date: Tue, 23 Oct 2007 14:30:05 +0000 (+0200) Subject: afs: Fix a fd leak. X-Git-Tag: v0.3.0~252 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=50c94d6ab44593ff4ea1559472fa99aaa7627e06 afs: Fix a fd leak. --- diff --git a/afs.c b/afs.c index 0c7526c7..901ae00d 100644 --- a/afs.c +++ b/afs.c @@ -468,14 +468,13 @@ int pass_afd(int fd, char *buf, size_t size) /** * Open the audio file with highest score. * - * \param afd Audio file data is returned here. + * This stores all information for streaming the "best" audio file in a shared + * memory area. The id of that area and an open file descriptor for the next + * audio file are passed to the server process. * - * This stores all information for streaming the "best" audio file - * in the \a afd structure. + * \return Standard. * - * \return Positive on success, negative on errors. - * - * \sa close_audio_file(), open_and_update_audio_file(). + * \sa open_and_update_audio_file(). */ int open_next_audio_file(void) { @@ -500,6 +499,7 @@ int open_next_audio_file(void) *(uint32_t *)buf = NEXT_AUDIO_FILE; *(uint32_t *)(buf + 4) = (uint32_t)shmid; ret = pass_afd(afd.fd, buf, 8); + close(afd.fd); if (ret >= 0) return ret; PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));