summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2012-04-05 17:01:05 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2012-04-05 17:01:05 +0200
commit68ab6accd558cf5cd445eef4ec9d409775daa42b (patch)
treea8800d0bda827886b28925e1ccc88ad8456f28f4
parent32ef34bd364f86532ef1997cc4f7eb76d2d64a77 (diff)
weston-launch: Actually use int for open-flags
-rw-r--r--src/launcher_util.c8
-rw-r--r--src/launcher_util.h2
-rw-r--r--src/weston-launch.c10
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;