chiark
/
gitweb
/
~ian
/
authbind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
c4ec739
)
introduce checkexecflagfile
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 2 Jun 2012 00:56:28 +0000
(
01:56
+0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 2 Jun 2012 00:56:28 +0000
(
01:56
+0100)
helper.c
patch
|
blob
|
history
diff --git
a/helper.c
b/helper.c
index c3133eb885893f12b9ef979aa270225357b44732..0841cd2f89f2083acff44e5669b5e5ca9c8a7089 100644
(file)
--- a/
helper.c
+++ b/
helper.c
@@
-62,6
+62,11
@@
static void authorised(void) {
else _exit(0);
}
else _exit(0);
}
+static void checkexecflagfile(const char *file) {
+ if (!access(file,X_OK)) authorised();
+ if (errno != ENOENT) exiterrno(errno);
+}
+
static void hex2bytes(const char *string, unsigned char *out, int len) {
int i;
for (i=0; i<len; i++) {
static void hex2bytes(const char *string, unsigned char *out, int len) {
int i;
for (i=0; i<len; i++) {
@@
-139,13
+144,11
@@
int main(int argc, const char *const *argv) {
if (af == AF_INET) {
snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s:%u",tophalfchar,np,hport);
if (af == AF_INET) {
snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s:%u",tophalfchar,np,hport);
- if (!access(fnbuf,X_OK)) authorised();
- if (errno != ENOENT) exiterrno(errno);
+ checkexecflagfile(fnbuf);
}
snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,np,hport);
}
snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,np,hport);
- if (!access(fnbuf,X_OK)) authorised();
- if (errno != ENOENT) exiterrno(errno);
+ checkexecflagfile(fnbuf);
if (af == AF_INET6) {
char sbuf[addrlen_any*3+1], *sp = sbuf;
if (af == AF_INET6) {
char sbuf[addrlen_any*3+1], *sp = sbuf;
@@
-159,8
+162,7
@@
int main(int argc, const char *const *argv) {
sp += sprintf(sp,"%x",val);
}
snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,sbuf,hport);
sp += sprintf(sp,"%x",val);
}
snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,sbuf,hport);
- if (!access(fnbuf,X_OK)) authorised();
- if (errno != ENOENT) exiterrno(errno);
+ checkexecflagfile(fnbuf);
}
uid= getuid(); if (uid==(uid_t)-1) perrorfail("getuid");
}
uid= getuid(); if (uid==(uid_t)-1) perrorfail("getuid");