From 628830921ef9ddf1e3d611c37f1c22393b0293b6 Mon Sep 17 00:00:00 2001 From: Kevin Harwell <kharwell@sangoma.com> Date: Tue, 3 Aug 2021 11:30:54 -0500 Subject: [PATCH] format_ogg_speex: Implement a "not supported" write handler This format did not specify a "write" handler, so when attempting to write to it (ast_writestream) a crash would occur. This patch adds a default handler that simply issues a "not supported" warning, thus no longer crashing. ASTERISK-29539 Change-Id: I8f6ddc7cc3b15da30803be3b1cf68e2ba0fbce91 --- formats/format_ogg_speex.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/formats/format_ogg_speex.c b/formats/format_ogg_speex.c index ff26c9d22c..0d7a8fd596 100644 --- a/formats/format_ogg_speex.c +++ b/formats/format_ogg_speex.c @@ -254,6 +254,12 @@ static int ogg_speex_trunc(struct ast_filestream *s) return -1; } +static int ogg_speex_write(struct ast_filestream *s, struct ast_frame *f) +{ + ast_log(LOG_WARNING, "Writing is not supported on OGG/Speex streams!\n"); + return -1; +} + /*! * \brief Seek to a specific position in an OGG/Speex filestream. * \param s The filestream to truncate. @@ -277,6 +283,7 @@ static struct ast_format_def speex_f = { .name = "ogg_speex", .exts = "spx", .open = ogg_speex_open, + .write = ogg_speex_write, .seek = ogg_speex_seek, .trunc = ogg_speex_trunc, .tell = ogg_speex_tell, @@ -290,6 +297,7 @@ static struct ast_format_def speex16_f = { .name = "ogg_speex16", .exts = "spx16", .open = ogg_speex_open, + .write = ogg_speex_write, .seek = ogg_speex_seek, .trunc = ogg_speex_trunc, .tell = ogg_speex_tell, @@ -303,6 +311,7 @@ static struct ast_format_def speex32_f = { .name = "ogg_speex32", .exts = "spx32", .open = ogg_speex_open, + .write = ogg_speex_write, .seek = ogg_speex_seek, .trunc = ogg_speex_trunc, .tell = ogg_speex_tell, -- GitLab