Signed-off-by: Alan Coopersmith <[email protected]>
---
 configure.ac   |    3 +++
 src/FSErrDis.c |    5 +++++
 src/FSlibInt.c |    4 ++++
 3 files changed, 12 insertions(+)

diff --git a/configure.ac b/configure.ac
index bcc4187..26fffb1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -51,6 +51,9 @@ PKG_CHECK_MODULES(FS, xproto >= 7.0.17 fontsproto xtrans)
 # Find needed libraries for TCP sockets (pre-pended in $LIBS)
 XTRANS_CONNECTION_FLAGS
 
+# Checks for library functions.
+AC_CHECK_FUNCS([strlcpy])
+
 # Allow checking code with lint, sparse, etc.
 XORG_WITH_LINT
 XORG_LINT_LIBRARY([FS])
diff --git a/src/FSErrDis.c b/src/FSErrDis.c
index 1a712ff..76ebab6 100644
--- a/src/FSErrDis.c
+++ b/src/FSErrDis.c
@@ -84,9 +84,14 @@ int FSGetErrorDatabaseText(
 {
     if (nbytes == 0)
        return 0;
+#ifdef HAVE_STRLCPY
+    if (strlcpy(buffer, defaultp, nbytes) >= nbytes)
+       return 0;
+#else
     (void) strncpy(buffer, defaultp, nbytes);
     if ((strlen(defaultp) + 1) > nbytes)
        buffer[nbytes - 1] = '\0';
+#endif
     return 1;
 }
 
diff --git a/src/FSlibInt.c b/src/FSlibInt.c
index 71f6ac1..090da3f 100644
--- a/src/FSlibInt.c
+++ b/src/FSlibInt.c
@@ -850,7 +850,11 @@ _FSPrintDefaultError(
                ext && (ext->codes.major_opcode != event->request_code);
                ext = ext->next);
        if (ext)
+#ifdef HAVE_STRLCPY
+           strlcpy(buffer, ext->name, sizeof(buffer));
+#else
            strcpy(buffer, ext->name);
+#endif
        else
            buffer[0] = '\0';
     }
-- 
1.7.9.2

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to