chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
main: check if we have a valid PID before getting the name of it
[elogind.git]
/
src
/
sd-daemon.c
diff --git
a/src/sd-daemon.c
b/src/sd-daemon.c
index 9c23b917f90a2a120992f7abe80f82c295353979..6d1eebff07c68a977abc325a3c9c3592839a24ee 100644
(file)
--- a/
src/sd-daemon.c
+++ b/
src/sd-daemon.c
@@
-40,6
+40,7
@@
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
+#include <stddef.h>
#include "sd-daemon.h"
#include "sd-daemon.h"
@@
-307,17
+308,17
@@
int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t
if (length <= 0)
/* Unnamed socket */
if (length <= 0)
/* Unnamed socket */
- return l ==
sizeof(sa_family_t
);
+ return l ==
offsetof(struct sockaddr_un, sun_path
);
if (path[0])
/* Normal path socket */
return
if (path[0])
/* Normal path socket */
return
- (l >=
sizeof(sa_family_t
) + length + 1) &&
+ (l >=
offsetof(struct sockaddr_un, sun_path
) + length + 1) &&
memcmp(path, sockaddr.un.sun_path, length+1) == 0;
else
/* Abstract namespace socket */
return
memcmp(path, sockaddr.un.sun_path, length+1) == 0;
else
/* Abstract namespace socket */
return
- (l ==
sizeof(sa_family_t
) + length) &&
+ (l ==
offsetof(struct sockaddr_un, sun_path
) + length) &&
memcmp(path, sockaddr.un.sun_path, length) == 0;
}
memcmp(path, sockaddr.un.sun_path, length) == 0;
}
@@
-366,7
+367,7
@@
int sd_notify(int unset_environment, const char *state) {
memset(&msghdr, 0, sizeof(msghdr));
msghdr.msg_name = &sockaddr;
memset(&msghdr, 0, sizeof(msghdr));
msghdr.msg_name = &sockaddr;
- msghdr.msg_namelen =
sizeof(sa_family_t
) + strlen(e);
+ msghdr.msg_namelen =
offsetof(struct sockaddr_un, sun_path
) + strlen(e);
if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
msghdr.msg_namelen = sizeof(struct sockaddr_un);
if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
msghdr.msg_namelen = sizeof(struct sockaddr_un);