1
0
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:
Karl Heyes 2003-12-01 17:18:37 +00:00
parent 85efc9a783
commit b795bb58dc
2 changed files with 5 additions and 3 deletions

View File

@ -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;

View File

@ -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);