diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2012-04-05 17:01:05 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2012-04-05 17:01:05 +0200 |
commit | 68ab6accd558cf5cd445eef4ec9d409775daa42b (patch) | |
tree | a8800d0bda827886b28925e1ccc88ad8456f28f4 | |
parent | 32ef34bd364f86532ef1997cc4f7eb76d2d64a77 (diff) |
weston-launch: Actually use int for open-flags
-rw-r--r-- | src/launcher_util.c | 8 | ||||
-rw-r--r-- | src/launcher_util.h | 2 | ||||
-rw-r--r-- | src/weston-launch.c | 10 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/launcher_util.c b/src/launcher_util.c index 90b57d6..0975cca 100644 --- a/src/launcher_util.c +++ b/src/launcher_util.c @@ -39,7 +39,7 @@ int weston_launcher_open(struct weston_compositor *compositor, - const char *path, char flags) + const char *path, int flags) { int sock = compositor->launcher_sock; int fd, n, ret = -1; @@ -57,14 +57,14 @@ weston_launcher_open(struct weston_compositor *compositor, if (sock == -1) return -1; - n = 2 + strlen(path) + 1; + n = 1 + sizeof(int) + strlen(path) + 1; buf = malloc(n); if (!buf) return -1; buf[0] = WESTON_LAUNCHER_OPEN; - buf[1] = flags; - strcpy(&buf[2], path); + *((int *) (buf+1)) = flags; + strcpy(&buf[5], path); do { len = send(sock, buf, n, 0); diff --git a/src/launcher_util.h b/src/launcher_util.h index ad92e2b..da11028 100644 --- a/src/launcher_util.h +++ b/src/launcher_util.h @@ -27,7 +27,7 @@ int weston_launcher_open(struct weston_compositor *compositor, - const char *path, char flags); + const char *path, int flags); int weston_launcher_drm_set_master(struct weston_compositor *compositor, int drm_fd, char master); diff --git a/src/weston-launch.c b/src/weston-launch.c index 1ca19a6..97f3235 100644 --- a/src/weston-launch.c +++ b/src/weston-launch.c @@ -277,8 +277,8 @@ out: static int handle_open(struct weston_launch *wl, struct msghdr *msg, ssize_t len) { - char flags, *path; - int fd = -1, ret = -1; + char *path; + int fd = -1, ret = -1, flags; char control[CMSG_SPACE(sizeof(fd))]; struct cmsghdr *cmsg; struct stat s; @@ -289,11 +289,11 @@ handle_open(struct weston_launch *wl, struct msghdr *msg, ssize_t len) in = msg->msg_iov->iov_base; in[len] = '\0'; - if (len < 3) + if (len < 6) goto err0; - flags = in[1]; - path = &in[2]; + flags = *((int *) (in+1)); + path = &in[5]; if (stat(path, &s) < 0) goto err0; |