File fix-Command-Execution-in-ss-manager.patch of Package shadowsocks-libev.7462

diff -Nur shadowsocks-libev-2.5.6/src/manager.c shadowsocks-libev-2.5.6-new/src/manager.c
--- shadowsocks-libev-2.5.6/src/manager.c	2016-11-01 09:56:22.000000000 +0800
+++ shadowsocks-libev-2.5.6-new/src/manager.c	2017-10-31 10:57:27.836544193 +0800
@@ -93,7 +93,7 @@
 #endif
 
 static void
-build_config(char *prefix, struct server *server)
+build_config(char *prefix, struct manager_ctx *manager, struct server *server)
 {
     char *path    = NULL;
     int path_size = strlen(prefix) + strlen(server->port) + 20;
@@ -111,7 +111,7 @@
     fprintf(f, "{\n");
     fprintf(f, "\"server_port\":\"%s\",\n", server->port);
     fprintf(f, "\"password\":\"%s\",\n", server->password);
-    fprintf(f, "}\n");
+    fprintf(f, "\n}\n");
     fclose(f);
     ss_free(path);
 }
@@ -121,14 +121,15 @@
 {
     static char cmd[BUF_SIZE];
     int i;
+    int port;
 
-    build_config(working_dir, server);
+    port = atoi(server->port);
+    build_config(working_dir, manager, server);
 
     memset(cmd, 0, BUF_SIZE);
     snprintf(cmd, BUF_SIZE,
-             "%s -m %s --manager-address %s -f %s/.shadowsocks_%s.pid -c %s/.shadowsocks_%s.conf",
-             executable, manager->method, manager->manager_address,
-             working_dir, server->port, working_dir, server->port);
+             "%s --manager-address %s -f %s/.shadowsocks_%d.pid -c %s/.shadowsocks_%d.conf",
+             executable, manager->manager_address, working_dir, port, working_dir, port);
 
     if (manager->acl != NULL) {
         int len = strlen(cmd);
openSUSE Build Service is sponsored by