summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--slirp/libslirp.h2
-rw-r--r--slirp/slirp.c2
-rw-r--r--vl.c4
3 files changed, 3 insertions, 5 deletions
diff --git a/slirp/libslirp.h b/slirp/libslirp.h
index 36c8ec21fd..a9260afeb3 100644
--- a/slirp/libslirp.h
+++ b/slirp/libslirp.h
@@ -32,7 +32,7 @@ int slirp_add_exec(int do_pty, const char *args, int addr_low_byte,
                    int guest_port);
 
 extern const char *tftp_prefix;
-extern const char slirp_hostname[33];
+extern char slirp_hostname[33];
 
 #ifdef __cplusplus
 }
diff --git a/slirp/slirp.c b/slirp/slirp.c
index b4ab12a088..1331d0ead7 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -25,7 +25,7 @@ struct ex_list *exec_list;
 /* XXX: suppress those select globals */
 fd_set *global_readfds, *global_writefds, *global_xfds;
 
-const char slirp_hostname[33];
+char slirp_hostname[33];
 
 #ifdef _WIN32
 
diff --git a/vl.c b/vl.c
index 64fcfb458a..bfc14902f5 100644
--- a/vl.c
+++ b/vl.c
@@ -3132,9 +3132,7 @@ int net_client_init(const char *str)
 #ifdef CONFIG_SLIRP
     if (!strcmp(device, "user")) {
         if (get_param_value(buf, sizeof(buf), "hostname", p)) {
-            if (strlen(buf) > 32)
-              buf[32] = 0;
-            strcpy(slirp_hostname, buf);
+            pstrcpy(slirp_hostname, sizeof(slirp_hostname), buf);
         }
         ret = net_slirp_init(vlan);
     } else