[PATCH v2 2/2] [libXau] XauGet*AuthByAddr: use XauGetFileName instead of XauFileName
Erkki Seppälä
erkki.seppala at vincit.fi
Wed Mar 30 01:53:54 PDT 2011
XauGetFileName is a thread-safe variant of XauFileName.
Signed-off-by: Erkki Seppälä <erkki.seppala at vincit.fi>
Reviewed-by: Rami Ylimäki <rami.ylimaki at vincit.fi>
---
AuGetAddr.c | 12 +++++++-----
AuGetBest.c | 12 +++++++-----
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/AuGetAddr.c b/AuGetAddr.c
index 897d8b5..5d6c8fb 100644
--- a/AuGetAddr.c
+++ b/AuGetAddr.c
@@ -29,6 +29,7 @@ in this Software without prior written authorization from The Open Group.
#endif
#include <X11/Xauth.h>
#include <X11/Xos.h>
+#include <stdlib.h>
static int
binaryEqual (_Xconst char *a, _Xconst char *b, int len)
@@ -64,16 +65,15 @@ _Xconst char* name)
{
FILE *auth_file;
char *auth_name;
- Xauth *entry;
+ Xauth *entry = NULL;
- auth_name = XauFileName ();
- if (!auth_name)
+ if (XauGetFileName (&auth_name, NULL) != XAUTH_GETFN_OK)
return NULL;
if (access (auth_name, R_OK) != 0) /* checks REAL id */
- return NULL;
+ goto cleanup;
auth_file = fopen (auth_name, "rb");
if (!auth_file)
- return NULL;
+ goto cleanup;
for (;;) {
entry = XauReadAuth (auth_file);
if (!entry)
@@ -105,5 +105,7 @@ _Xconst char* name)
XauDisposeAuth (entry);
}
(void) fclose (auth_file);
+ cleanup:
+ free(auth_name);
return entry;
}
diff --git a/AuGetBest.c b/AuGetBest.c
index 673ee40..096a4c0 100644
--- a/AuGetBest.c
+++ b/AuGetBest.c
@@ -37,6 +37,7 @@ in this Software without prior written authorization from The Open Group.
#define XOS_USE_NO_LOCKING
#include <X11/Xos_r.h>
#endif
+#include <stdlib.h>
static int
binaryEqual (_Xconst char *a, _Xconst char *b, int len)
@@ -70,7 +71,7 @@ XauGetBestAuthByAddr (
FILE *auth_file;
char *auth_name;
Xauth *entry;
- Xauth *best;
+ Xauth *best = NULL;
int best_type;
int type;
#ifdef hpux
@@ -78,14 +79,13 @@ XauGetBestAuthByAddr (
unsigned short fully_qual_address_length;
#endif
- auth_name = XauFileName ();
- if (!auth_name)
+ if (XauGetFileName (&auth_name, NULL) != XAUTH_GETFN_OK)
return NULL;
if (access (auth_name, R_OK) != 0) /* checks REAL id */
- return NULL;
+ goto cleanup;
auth_file = fopen (auth_name, "rb");
if (!auth_file)
- return NULL;
+ goto cleanup;
#ifdef hpux
if (family == FamilyLocal) {
@@ -166,5 +166,7 @@ XauGetBestAuthByAddr (
XauDisposeAuth (entry);
}
(void) fclose (auth_file);
+ cleanup:
+ free(auth_name);
return best;
}
--
1.7.0.4
More information about the xorg-devel
mailing list