Workaround compiler optimization bug
This commit is contained in:
parent
0afa601551
commit
9c6e64f47d
@ -339,7 +339,7 @@ static void patch_socket_name(const char *path) {
|
|||||||
mmap_rw(path, &buf, &size);
|
mmap_rw(path, &buf, &size);
|
||||||
if (SOCKET_OFF < 0) {
|
if (SOCKET_OFF < 0) {
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
if (memcmp(buf + i, SOCKET_NAME, sizeof(SOCKET_NAME)) == 0) {
|
if (memcmp(buf + i, socket_name, sizeof(SOCKET_NAME)) == 0) {
|
||||||
SOCKET_OFF = i;
|
SOCKET_OFF = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -8,13 +8,15 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "magisk.h"
|
#include "magisk.h"
|
||||||
|
|
||||||
|
char socket_name[] = SOCKET_NAME;
|
||||||
|
|
||||||
/* Setup the address and return socket fd */
|
/* Setup the address and return socket fd */
|
||||||
int setup_socket(struct sockaddr_un *sun) {
|
int setup_socket(struct sockaddr_un *sun) {
|
||||||
int fd = xsocket(AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0);
|
int fd = xsocket(AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0);
|
||||||
memset(sun, 0, sizeof(*sun));
|
memset(sun, 0, sizeof(*sun));
|
||||||
sun->sun_family = AF_LOCAL;
|
sun->sun_family = AF_LOCAL;
|
||||||
sun->sun_path[0] = '\0';
|
sun->sun_path[0] = '\0';
|
||||||
memcpy(sun->sun_path + 1, SOCKET_NAME, sizeof(SOCKET_NAME));
|
memcpy(sun->sun_path + 1, socket_name, sizeof(SOCKET_NAME));
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ extern char *argv0; /* For changing process name */
|
|||||||
#define init_applet ((char *[]) { "magiskpolicy", "supolicy", NULL })
|
#define init_applet ((char *[]) { "magiskpolicy", "supolicy", NULL })
|
||||||
|
|
||||||
extern int (*applet_main[]) (int, char *[]), (*init_applet_main[]) (int, char *[]);
|
extern int (*applet_main[]) (int, char *[]), (*init_applet_main[]) (int, char *[]);
|
||||||
|
extern char socket_name[]; /* Workaround compiler bug pre NDK r13 */
|
||||||
|
|
||||||
int create_links(const char *bin, const char *path);
|
int create_links(const char *bin, const char *path);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user