strncpy only adds null terminating bytes if the source string is smaller
than the destination string.  Since this function relies on the string
being null terminated when checking its contents, we better make sure
there is at least a \0 as the last character.

Signed-off-by: Bryce Harrington <br...@osg.samsung.com>
---
 src/compositor-drm.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index f5f125a..70a3729 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -1933,6 +1933,9 @@ edid_parse_string(const uint8_t *data, char text[])
         * terminated or not junk. */
        strncpy(text, (const char *) data, 12);
 
+       /* guarantee our new string is null-terminated */
+       text[12] = '\0';
+
        /* remove insane chars */
        for (i = 0; text[i] != '\0'; i++) {
                if (text[i] == '\n' ||
-- 
1.9.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to