summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2012-03-20 20:29:15 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2012-05-28 13:10:45 +0200
commit3d12509f987c9bee6e7c28589a02be2015284e43 (patch)
treebcced9c9d101cb3c856a311d7361939c1b339530
parentb8c928ccd810a46794f77746377e614f90d37a5b (diff)
downloadspice-0.10.zip
spice-0.10.tar.gz
spice-0.10.tar.xz
Use spice_strdup() to avoid crashing on NULL0.10
qemu can call spice_server_set_name(s, NULL) when the name is not given. Let's not crash in this case
-rw-r--r--server/main_channel.c4
-rw-r--r--server/red_tunnel_worker.c4
-rw-r--r--server/reds.c12
3 files changed, 10 insertions, 10 deletions
diff --git a/server/main_channel.c b/server/main_channel.c
index 9998c9f..72b6735 100644
--- a/server/main_channel.c
+++ b/server/main_channel.c
@@ -639,10 +639,10 @@ static void main_channel_fill_mig_target(MainChannel *main_channel, RedsMigSpice
{
ASSERT(mig_target);
free(main_channel->mig_target.host);
- main_channel->mig_target.host = strdup(mig_target->host);
+ main_channel->mig_target.host = spice_strdup(mig_target->host);
free(main_channel->mig_target.cert_subject);
if (mig_target->cert_subject) {
- main_channel->mig_target.cert_subject = strdup(mig_target->cert_subject);
+ main_channel->mig_target.cert_subject = spice_strdup(mig_target->cert_subject);
}
main_channel->mig_target.port = mig_target->port;
main_channel->mig_target.sport = mig_target->sport;
diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c
index 9162da4..ff40277 100644
--- a/server/red_tunnel_worker.c
+++ b/server/red_tunnel_worker.c
@@ -1077,8 +1077,8 @@ static inline TunnelService *__tunnel_worker_add_service(TunnelWorker *worker, u
new_service->group = group;
new_service->port = port;
- new_service->name = strdup(name);
- new_service->description = strdup(description);
+ new_service->name = spice_strdup(name);
+ new_service->description = spice_strdup(description);
ring_add(&worker->services, &new_service->ring_item);
worker->num_services++;
diff --git a/server/reds.c b/server/reds.c
index d095370..94d31fd 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -2366,7 +2366,7 @@ static void reds_handle_auth_mechname(void *opaque)
}
free(sasl->mechlist);
- sasl->mechlist = strdup(sasl->mechname);
+ sasl->mechlist = spice_strdup(sasl->mechname);
red_printf("Validated mechname '%s'", sasl->mechname);
@@ -2501,7 +2501,7 @@ static void reds_start_auth_sasl(RedLinkInfo *link)
}
red_printf("Available mechanisms for client: '%s'", mechlist);
- sasl->mechlist = strdup(mechlist);
+ sasl->mechlist = spice_strdup(mechlist);
mechlistlen = strlen(mechlist);
if (!sync_write(link->stream, &mechlistlen, sizeof(uint32_t))
@@ -3775,7 +3775,7 @@ SPICE_GNUC_VISIBLE int spice_server_set_sasl_appname(SpiceServer *s, const char
ASSERT(reds == s);
#if HAVE_SASL
free(sasl_appname);
- sasl_appname = strdup(appname);
+ sasl_appname = spice_strdup(appname);
return 0;
#else
return -1;
@@ -3785,7 +3785,7 @@ SPICE_GNUC_VISIBLE int spice_server_set_sasl_appname(SpiceServer *s, const char
SPICE_GNUC_VISIBLE void spice_server_set_name(SpiceServer *s, const char *name)
{
free(spice_name);
- spice_name = strdup(name);
+ spice_name = spice_strdup(name);
}
SPICE_GNUC_VISIBLE void spice_server_set_uuid(SpiceServer *s, const uint8_t uuid[16])
@@ -4022,9 +4022,9 @@ static int reds_set_migration_dest_info(const char* dest,
spice_migration = spice_new0(RedsMigSpice, 1);
spice_migration->port = port;
spice_migration->sport = secure_port;
- spice_migration->host = strdup(dest);
+ spice_migration->host = spice_strdup(dest);
if (cert_subject) {
- spice_migration->cert_subject = strdup(cert_subject);
+ spice_migration->cert_subject = spice_strdup(cert_subject);
}
reds->mig_spice = spice_migration;