diff options
Diffstat (limited to 'libXau')
-rw-r--r-- | libXau/AuFileName.c | 7 | ||||
-rw-r--r-- | libXau/AuGetAddr.c | 15 | ||||
-rw-r--r-- | libXau/AuGetBest.c | 15 | ||||
-rw-r--r-- | libXau/AuLock.c | 30 | ||||
-rw-r--r-- | libXau/AuUnlock.c | 10 | ||||
-rw-r--r-- | libXau/configure.ac | 4 |
6 files changed, 31 insertions, 50 deletions
diff --git a/libXau/AuFileName.c b/libXau/AuFileName.c index 473fad110..090427387 100644 --- a/libXau/AuFileName.c +++ b/libXau/AuFileName.c @@ -57,9 +57,8 @@ XauFileName (void) name = getenv ("HOME"); if (!name) { #ifdef WIN32 - (void) strcpy (dir, "/users/"); if ((name = getenv("USERNAME"))) { - (void) strcat (dir, name); + snprintf(dir, sizeof(dir), "/users/%s", name); name = dir; } if (!name) @@ -81,7 +80,7 @@ XauFileName (void) bsize = size; } - strcpy (buf, name); - strcat (buf, slashDotXauthority + (name[1] == '\0' ? 1 : 0)); + snprintf (buf, bsize, "%s%s", name, + slashDotXauthority + (name[1] == '\0' ? 1 : 0)); return buf; } diff --git a/libXau/AuGetAddr.c b/libXau/AuGetAddr.c index 897d8b565..6f5fe16e4 100644 --- a/libXau/AuGetAddr.c +++ b/libXau/AuGetAddr.c @@ -30,14 +30,7 @@ in this Software without prior written authorization from The Open Group. #include <X11/Xauth.h> #include <X11/Xos.h> -static int -binaryEqual (_Xconst char *a, _Xconst char *b, int len) -{ - while (len--) - if (*a++ != *b++) - return 0; - return 1; -} +#define binaryEqual(a, b, len) (memcmp(a, b, len) == 0) Xauth * XauGetAuthByAddr ( @@ -94,13 +87,13 @@ _Xconst char* name) if ((family == FamilyWild || entry->family == FamilyWild || (entry->family == family && address_length == entry->address_length && - binaryEqual (entry->address, address, (int)address_length))) && + binaryEqual (entry->address, address, address_length))) && (number_length == 0 || entry->number_length == 0 || (number_length == entry->number_length && - binaryEqual (entry->number, number, (int)number_length))) && + binaryEqual (entry->number, number, number_length))) && (name_length == 0 || entry->name_length == 0 || (entry->name_length == name_length && - binaryEqual (entry->name, name, (int)name_length)))) + binaryEqual (entry->name, name, name_length)))) break; XauDisposeAuth (entry); } diff --git a/libXau/AuGetBest.c b/libXau/AuGetBest.c index 673ee406a..5556559ca 100644 --- a/libXau/AuGetBest.c +++ b/libXau/AuGetBest.c @@ -38,14 +38,7 @@ in this Software without prior written authorization from The Open Group. #include <X11/Xos_r.h> #endif -static int -binaryEqual (_Xconst char *a, _Xconst char *b, int len) -{ - while (len--) - if (*a++ != *b++) - return 0; - return 1; -} +#define binaryEqual(a, b, len) (memcmp(a, b, len) == 0) Xauth * XauGetBestAuthByAddr ( @@ -129,17 +122,17 @@ XauGetBestAuthByAddr ( if ((family == FamilyWild || entry->family == FamilyWild || (entry->family == family && ((address_length == entry->address_length && - binaryEqual (entry->address, address, (int)address_length)) + binaryEqual (entry->address, address, address_length)) #ifdef hpux || (family == FamilyLocal && fully_qual_address_length == entry->address_length && binaryEqual (entry->address, fully_qual_address, - (int) fully_qual_address_length)) + fully_qual_address_length)) #endif ))) && (number_length == 0 || entry->number_length == 0 || (number_length == entry->number_length && - binaryEqual (entry->number, number, (int)number_length)))) + binaryEqual (entry->number, number, number_length)))) { if (best_type == 0) { diff --git a/libXau/AuLock.c b/libXau/AuLock.c index 7bf9e5d30..5dfc1747e 100644 --- a/libXau/AuLock.c +++ b/libXau/AuLock.c @@ -33,15 +33,12 @@ in this Software without prior written authorization from The Open Group. #include <errno.h> #include <time.h> #define Time_t time_t -#ifndef X_NOT_POSIX -#include <unistd.h> -#else -#ifndef WIN32 -extern unsigned sleep (); -#else -#include <X11/Xwindows.h> -#define link rename +#ifdef HAVE_UNISTD_H +# include <unistd.h> #endif +#ifdef WIN32 +# include <X11/Xwindows.h> +# define link rename #endif int @@ -58,10 +55,8 @@ long dead) if (strlen (file_name) > 1022) return LOCK_ERROR; - (void) strcpy (creat_name, file_name); - (void) strcat (creat_name, "-c"); - (void) strcpy (link_name, file_name); - (void) strcat (link_name, "-l"); + snprintf (creat_name, sizeof(creat_name), "%s-c", file_name); + snprintf (link_name, sizeof(link_name), "%s-l", file_name); if (stat (creat_name, &statb) != -1) { now = time ((Time_t *) 0); /* @@ -69,8 +64,8 @@ long dead) * case a 0 deadtime to force lock removal */ if (dead == 0 || now - statb.st_ctime > dead) { - (void) unlink (creat_name); - (void) unlink (link_name); + (void) remove (creat_name); + (void) remove (link_name); } } @@ -84,7 +79,7 @@ long dead) (void) close (creat_fd); } if (creat_fd != -1) { -#ifndef X_NOT_POSIX +#ifdef HAVE_PATHCONF /* The file system may not support hard links, and pathconf should tell us that. */ if (1 == pathconf(creat_name, _PC_LINK_MAX)) { if (-1 == rename(creat_name, link_name)) { @@ -93,8 +88,9 @@ long dead) } else { return LOCK_SUCCESS; } - } else { + } else #endif + { if (link (creat_name, link_name) != -1) return LOCK_SUCCESS; if (errno == ENOENT) { @@ -103,9 +99,7 @@ long dead) } if (errno != EEXIST) return LOCK_ERROR; -#ifndef X_NOT_POSIX } -#endif } (void) sleep ((unsigned) timeout); --retries; diff --git a/libXau/AuUnlock.c b/libXau/AuUnlock.c index ddbe7db9e..b81724600 100644 --- a/libXau/AuUnlock.c +++ b/libXau/AuUnlock.c @@ -42,18 +42,16 @@ _Xconst char *file_name) if (strlen (file_name) > 1022) return 0; #ifndef WIN32 - (void) strcpy (creat_name, file_name); - (void) strcat (creat_name, "-c"); + snprintf (creat_name, sizeof(creat_name), "%s-c", file_name); #endif - (void) strcpy (link_name, file_name); - (void) strcat (link_name, "-l"); + snprintf (link_name, sizeof(link_name), "%s-l", file_name); /* * I think this is the correct order */ #ifndef WIN32 - (void) unlink (creat_name); + (void) remove (creat_name); #endif - (void) unlink (link_name); + (void) remove (link_name); return 1; } diff --git a/libXau/configure.ac b/libXau/configure.ac index 62a4717f5..e55cfceb6 100644 --- a/libXau/configure.ac +++ b/libXau/configure.ac @@ -26,6 +26,7 @@ AC_INIT([libXau], [1.0.7], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXau]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) +AC_USE_SYSTEM_EXTENSIONS # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-bzip2]) @@ -43,6 +44,9 @@ XORG_DEFAULT_OPTIONS # Checks for programs. AC_PROG_LN_S +# Checks for library functions. +AC_CHECK_FUNCS([pathconf]) + # Obtain compiler/linker options for depedencies PKG_CHECK_MODULES(XAU, xproto) |