summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/os_internal.h4
-rw-r--r--src/combined/xine_vorbis_decoder.c7
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/os_internal.h b/lib/os_internal.h
index 81b5ec8c5..f84bb1e62 100644
--- a/lib/os_internal.h
+++ b/lib/os_internal.h
@@ -344,8 +344,8 @@ void xine_private_rewinddir(DIR *);
#define HAVE_MEMMEM
#define memmem(H, HL, N, NL) \
xine_private_memmem((H), (HL), (N), (NL))
-void *xine_internal_memmem (const void *haystack, size_t haystack_len,
- const void *needle, size_t needle_len);
+void *xine_private_memmem (const void *haystack, size_t haystack_len,
+ const void *needle, size_t needle_len);
#endif
#endif
diff --git a/src/combined/xine_vorbis_decoder.c b/src/combined/xine_vorbis_decoder.c
index 259ef40b0..0dad6ed40 100644
--- a/src/combined/xine_vorbis_decoder.c
+++ b/src/combined/xine_vorbis_decoder.c
@@ -79,8 +79,11 @@ static void vorbis_reset (audio_decoder_t *this_gen) {
vorbis_decoder_t *this = (vorbis_decoder_t *) this_gen;
- if( !this->header_count )
- vorbis_block_init(&this->vd,&this->vb);
+ if( this->header_count ) return;
+
+ /* clear block first, as it might contain allocated data */
+ vorbis_block_clear(&this->vb);
+ vorbis_block_init(&this->vd,&this->vb);
}
static void vorbis_discontinuity (audio_decoder_t *this_gen) {