diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-08-27 20:45:13 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-08-27 22:38:45 -0700 |
commit | db0df3a3bd59a3c943a81f17567fef4fcb4cc215 (patch) | |
tree | 5158d1f6d571ef6c651177371b9f8221d96cfca2 | |
parent | 541a989803188f183f36fd33b1eef519fc46ee23 (diff) | |
download | mpd-db0df3a3bd59a3c943a81f17567fef4fcb4cc215.tar.gz mpd-db0df3a3bd59a3c943a81f17567fef4fcb4cc215.tar.xz mpd-db0df3a3bd59a3c943a81f17567fef4fcb4cc215.zip |
metadata_pipe: remove highly unlikely memory leak
When we send metadata, there's a remote chance that our pipe is
full and our tag will be silently discarded. If that happens,
the readers will never have a chance to free the tag, so ensure
we free it before returning to the caller.
-rw-r--r-- | src/metadata_pipe.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/metadata_pipe.c b/src/metadata_pipe.c index aecc331e6..a92fdd61b 100644 --- a/src/metadata_pipe.c +++ b/src/metadata_pipe.c @@ -68,6 +68,7 @@ void metadata_pipe_send(MpdTag *tag, float metadata_time) if (mpd_unlikely(ringbuf_write_space(mp) < sizeof(struct tag_container))) { DEBUG("metadata_pipe: insufficient buffer space, dropping\n"); + freeMpdTag(tag); return; } |