Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:11.4:Update
matthewlib-java
early_upstream.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File early_upstream.patch of Package matthewlib-java
diff --git a/unix-java.c b/unix-java.c index 25f6282..15fffbf 100644 --- a/unix-java.c +++ b/unix-java.c @@ -18,6 +18,10 @@ * */ + +/* _GNU_SOURCE is required to use struct ucred in glibc 2.8 */ +#define _GNU_SOURCE + #include "unix-java.h" #include <stdio.h> #include <stdlib.h> @@ -381,9 +385,9 @@ JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1send_1creds cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred)); /* Initialize the payload: */ creds = (struct ucred *)CMSG_DATA(cmsg); - creds.pid = getpid(); - creds.uid = getuid(); - creds.gid = getgid(); + creds->pid = getpid(); + creds->uid = getuid(); + creds->gid = getgid(); #endif int rv = sendmsg(sock, &msg, 0); @@ -399,7 +403,7 @@ JNIEXPORT jbyte JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1recv_1creds (JNIEnv *env, jobject o, jint sock, jintArray jcreds) { struct msghdr msg; - char buf = 0; + char iov_buf = 0; struct iovec iov; msg.msg_name = NULL; msg.msg_namelen = 0; @@ -408,7 +412,7 @@ JNIEXPORT jbyte JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1recv_1creds msg.msg_iovlen = 1; msg.msg_control = NULL; msg.msg_controllen = 0; - iov.iov_base = &buf; + iov.iov_base = &iov_buf; iov.iov_len = 1; #ifdef SCM_CREDENTIALS @@ -422,9 +426,9 @@ JNIEXPORT jbyte JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1recv_1creds recvmsg(sock, &msg, 0); #ifdef SCM_CREDENTIALS - for (cmsg = CMSG_FIRSTHDR(&msgh); + for (cmsg = CMSG_FIRSTHDR(&msg); cmsg != NULL; - cmsg = CMSG_NXTHDR(&msgh,cmsg)) { + cmsg = CMSG_NXTHDR(&msg,cmsg)) { if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_CREDENTIALS) { creds = (struct ucred *) CMSG_DATA(cmsg); @@ -432,11 +436,15 @@ JNIEXPORT jbyte JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1recv_1creds } } if (NULL != creds) { - (*env)->SetIntArrayRegion(env, jcreds, 0, 3, creds); + jint cred_array[3]; + cred_array[0] = creds->pid; + cred_array[1] = creds->uid; + cred_array[2] = creds->gid; + (*env)->SetIntArrayRegion(env, jcreds, 0, 3, &cred_array[0]); } #endif - return buf; + return iov_buf; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor