Use snprintf to avoid OpenBSD warning
authorBlue Swirl <blauwirbel@gmail.com>
Tue, 9 Jun 2009 19:12:21 +0000 (19:12 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Tue, 9 Jun 2009 19:12:21 +0000 (19:12 +0000)
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>

vl.c

diff --git a/vl.c b/vl.c
index c3dc26a..f08f0f3 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -4834,6 +4834,7 @@ static char *find_datadir(const char *argv0)
 #ifdef PATH_MAX
     char buf[PATH_MAX];
 #endif
+    size_t max_len;
 
 #if defined(__linux__)
     {
@@ -4868,11 +4869,12 @@ static char *find_datadir(const char *argv0)
     dir = dirname(p);
     dir = dirname(dir);
 
-    res = qemu_mallocz(strlen(dir) + 
-        MAX(strlen(SHARE_SUFFIX), strlen(BUILD_SUFFIX)) + 1);
-    sprintf(res, "%s%s", dir, SHARE_SUFFIX);
+    max_len = strlen(dir) +
+        MAX(strlen(SHARE_SUFFIX), strlen(BUILD_SUFFIX)) + 1;
+    res = qemu_mallocz(max_len);
+    snprintf(res, max_len, "%s%s", dir, SHARE_SUFFIX);
     if (access(res, R_OK)) {
-        sprintf(res, "%s%s", dir, BUILD_SUFFIX);
+        snprintf(res, max_len, "%s%s", dir, BUILD_SUFFIX);
         if (access(res, R_OK)) {
             qemu_free(res);
             res = NULL;
@@ -4910,7 +4912,7 @@ char *qemu_find_file(int type, const char *name)
     }
     len = strlen(data_dir) + strlen(name) + strlen(subdir) + 2;
     buf = qemu_mallocz(len);
-    sprintf(buf, "%s/%s%s", data_dir, subdir, name);
+    snprintf(buf, len, "%s/%s%s", data_dir, subdir, name);
     if (access(buf, R_OK)) {
         qemu_free(buf);
         return NULL;