From 54889c72e3469027a852d9e8ff029d659e612094 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 23 Jul 2009 12:01:03 +0200 Subject: pcm_convert: use GError for error handling Don't abort the whole MPD process when the conversion fails. This has been a denial-of-service attack vector for years. --- src/filter/convert_filter_plugin.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'src/filter') diff --git a/src/filter/convert_filter_plugin.c b/src/filter/convert_filter_plugin.c index b7f16de4..d197dbdb 100644 --- a/src/filter/convert_filter_plugin.c +++ b/src/filter/convert_filter_plugin.c @@ -53,12 +53,6 @@ struct convert_filter { struct pcm_convert_state state; }; -static inline GQuark -convert_quark(void) -{ - return g_quark_from_static_string("pcm_convert"); -} - static struct filter * convert_filter_init(G_GNUC_UNUSED const struct config_param *param, G_GNUC_UNUSED GError **error_r) @@ -119,12 +113,10 @@ convert_filter_filter(struct filter *_filter, const void *src, size_t src_size, dest = pcm_convert(&filter->state, &filter->in_audio_format, src, src_size, - &filter->out_audio_format, dest_size_r); - if (dest == NULL) { - g_set_error(error_r, convert_quark(), 0, - "pcm_convert() has failed"); + &filter->out_audio_format, dest_size_r, + error_r); + if (dest == NULL) return NULL; - } return dest; } -- cgit v1.2.3