From: John Darrington <john@darrington.wattle.id.au>
Date: Sat, 29 Sep 2018 09:10:45 +0000 (+0200)
Subject: value-variant.c: Avoid read from beyond end of buffer in string values.
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef41f96ea518d1d164ea178f9364721b0a78e599;p=pspp

value-variant.c: Avoid read from beyond end of buffer in string values.
---

diff --git a/src/ui/gui/value-variant.c b/src/ui/gui/value-variant.c
index 0789717ab7..ce523ae14e 100644
--- a/src/ui/gui/value-variant.c
+++ b/src/ui/gui/value-variant.c
@@ -87,12 +87,11 @@ value_variant_get (union value *val, GVariant *v)
   else
     {
       const gchar *data = g_variant_get_bytestring (vdata);
+      size_t len = strlen (data);
       if (width <= MAX_SHORT_STRING)
-	memcpy (val->short_string, data, MAX_SHORT_STRING);
+	memcpy (val->short_string, data, MIN (MAX_SHORT_STRING, len));
       else
-	{
-	  val->long_string = xmemdup (data, width);
-	}
+	val->long_string = xmemdup (data, MIN (width, len));
     }
 
   g_variant_unref (vdata);