mirror of
https://gitlab.xiph.org/xiph/ezstream.git
synced 2024-12-04 14:46:31 -05:00
Fix crash related to unconfigured intakes
This commit is contained in:
parent
656fff81e8
commit
80afe5baf7
2
NEWS
2
NEWS
@ -4,6 +4,8 @@ Changes in 1.0.2, released on XXXX-XX-XX:
|
||||
that do not contain the respective values. From gui-lux on Github (#16).
|
||||
* Fix a crash in one instance of querying the metadata program. From taku0220
|
||||
on Github (#23).
|
||||
* Fix a crash when referencing an unconfigured intake in a stream. From
|
||||
Optiqus on Github (#28).
|
||||
* Minor documentation tweak
|
||||
|
||||
|
||||
|
@ -383,6 +383,7 @@ stream_configure(struct stream *s)
|
||||
cfg_server_list_t servers;
|
||||
cfg_stream_t cfg_stream;
|
||||
cfg_server_t cfg_server;
|
||||
cfg_intake_t cfg_intake;
|
||||
const char *server;
|
||||
|
||||
streams = cfg_get_streams();
|
||||
@ -409,6 +410,14 @@ stream_configure(struct stream *s)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
cfg_intake = stream_get_cfg_intake(s);
|
||||
if (0 > cfg_intake_validate(cfg_intake, NULL)) {
|
||||
log_error("stream: %s: referencing unconfigured intake (%s)",
|
||||
s->name, cfg_intake_get_name(cfg_intake));
|
||||
_stream_reset(s);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,8 @@ Suite * stream_suite(void);
|
||||
void setup_checked(void);
|
||||
void teardown_checked(void);
|
||||
|
||||
cfg_intake_list_t intakes;
|
||||
|
||||
START_TEST(test_stream)
|
||||
{
|
||||
stream_t s;
|
||||
@ -17,6 +19,7 @@ START_TEST(test_stream)
|
||||
char *m_str;
|
||||
cfg_server_t srv_cfg;
|
||||
cfg_stream_t str_cfg;
|
||||
cfg_intake_t int_cfg;
|
||||
cfg_server_list_t servers = cfg_get_servers();
|
||||
cfg_stream_list_t streams = cfg_get_streams();
|
||||
|
||||
@ -32,7 +35,8 @@ START_TEST(test_stream)
|
||||
ck_assert_ptr_ne(srv_cfg, NULL);
|
||||
str_cfg = stream_get_cfg_stream(s);
|
||||
ck_assert_ptr_ne(str_cfg, NULL);
|
||||
ck_assert_ptr_ne(stream_get_cfg_intake(s), NULL);
|
||||
int_cfg = stream_get_cfg_intake(s);
|
||||
ck_assert_ptr_ne(int_cfg, NULL);
|
||||
|
||||
ck_assert_int_ne(stream_configure(s), 0);
|
||||
ck_assert_int_eq(cfg_server_set_hostname(srv_cfg, servers, "localhost", NULL), 0);
|
||||
@ -48,6 +52,8 @@ START_TEST(test_stream)
|
||||
ck_assert_int_eq(cfg_stream_set_mountpoint(str_cfg, streams, "/test.ogg", NULL), 0);
|
||||
ck_assert_int_ne(stream_configure(s), 0);
|
||||
ck_assert_int_eq(cfg_stream_set_format(str_cfg, streams, "mp3", NULL), 0);
|
||||
ck_assert_int_ne(stream_configure(s), 0);
|
||||
cfg_intake_set_filename(int_cfg, intakes, "stream_test", NULL);
|
||||
ck_assert_int_eq(stream_configure(s), 0);
|
||||
ck_assert_int_eq(cfg_stream_set_format(str_cfg, streams, "ogg", NULL), 0);
|
||||
ck_assert_int_eq(stream_configure(s), 0);
|
||||
|
Loading…
Reference in New Issue
Block a user