mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-12-04 14:46:30 -05:00
cleanup bad pointer access after config re-read
svn path=/trunk/icecast/; revision=5673
This commit is contained in:
parent
85efc9a783
commit
b795bb58dc
@ -442,7 +442,6 @@ int connection_create_source(client_t *client, connection_t *con, http_parser_t
|
||||
config = config_get_config();
|
||||
mountproxy = config->mounts;
|
||||
thread_mutex_lock(&(config_locks()->mounts_lock));
|
||||
config_release_config();
|
||||
|
||||
while(mountproxy) {
|
||||
if(!strcmp(mountproxy->mountname, mount)) {
|
||||
@ -459,6 +458,7 @@ int connection_create_source(client_t *client, connection_t *con, http_parser_t
|
||||
if (format == FORMAT_ERROR) {
|
||||
WARN1("Content-type \"%s\" not supported, dropping source", contenttype);
|
||||
thread_mutex_unlock(&(config_locks()->mounts_lock));
|
||||
config_release_config();
|
||||
goto fail;
|
||||
} else {
|
||||
source = source_create(client, con, parser, mount,
|
||||
@ -471,6 +471,7 @@ int connection_create_source(client_t *client, connection_t *con, http_parser_t
|
||||
source = source_create(client, con, parser, mount, format, mountinfo);
|
||||
thread_mutex_unlock(&(config_locks()->mounts_lock));
|
||||
}
|
||||
config_release_config();
|
||||
|
||||
source->send_return = 1;
|
||||
source->shutdown_rwlock = &_source_shutdown_rwlock;
|
||||
|
@ -72,9 +72,9 @@ source_t *source_create(client_t *client, connection_t *con,
|
||||
src->yp_public = 0;
|
||||
|
||||
if(mountinfo != NULL) {
|
||||
src->fallback_mount = mountinfo->fallback_mount;
|
||||
src->fallback_mount = strdup (mountinfo->fallback_mount);
|
||||
src->max_listeners = mountinfo->max_listeners;
|
||||
src->dumpfilename = mountinfo->dumpfile;
|
||||
src->dumpfilename = strdup (mountinfo->dumpfile);
|
||||
}
|
||||
|
||||
if(src->dumpfilename != NULL) {
|
||||
@ -140,6 +140,7 @@ int source_free_source(void *key)
|
||||
|
||||
free(source->mount);
|
||||
free(source->fallback_mount);
|
||||
free(source->dumpfilename);
|
||||
client_destroy(source->client);
|
||||
avl_tree_free(source->pending_tree, _free_client);
|
||||
avl_tree_free(source->client_tree, _free_client);
|
||||
|
Loading…
Reference in New Issue
Block a user