浏览代码

shadowsocksr-libev: Upgrade PCRE to PCRE2

coolsnowwolf 1 年之前
父节点
当前提交
b47885ed77

+ 2 - 10
shadowsocksr-libev/Makefile

@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=shadowsocksr-libev
 PKG_NAME:=shadowsocksr-libev
 PKG_VERSION:=2.5.6
 PKG_VERSION:=2.5.6
-PKG_RELEASE:=10
+PKG_RELEASE:=11
 
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev
 PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev
@@ -34,7 +34,7 @@ define Package/shadowsocksr-libev/Default
     SUBMENU:=Web Servers/Proxies
     SUBMENU:=Web Servers/Proxies
     TITLE:=shadowsocksr-libev ssr-$(1)
     TITLE:=shadowsocksr-libev ssr-$(1)
     URL:=https://github.com/shadowsocksrr/shadowsocksr-libev
     URL:=https://github.com/shadowsocksrr/shadowsocksr-libev
-    DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib
+    DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib +PACKAGE_libopenssl-legacy:libopenssl-legacy
   endef
   endef
 
 
   define Package/shadowsocksr-libev-ssr-$(1)/install
   define Package/shadowsocksr-libev-ssr-$(1)/install
@@ -60,14 +60,6 @@ CONFIGURE_ARGS += \
 TARGET_CFLAGS += -flto
 TARGET_CFLAGS += -flto
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
 
 
-ifeq ($(CONFIG_GCC_VERSION_12),y)
-	TARGET_CFLAGS += -Wno-error=use-after-free
-endif
-
-ifeq ($(CONFIG_GCC_VERSION_13),y)
-	TARGET_CFLAGS += -Wno-error=use-after-free
-endif
-
 $(foreach component,$(SHADOWSOCKSR_COMPONENTS), \
 $(foreach component,$(SHADOWSOCKSR_COMPONENTS), \
   $(eval $(call BuildPackage,shadowsocksr-libev-ssr-$(component))) \
   $(eval $(call BuildPackage,shadowsocksr-libev-ssr-$(component))) \
 )
 )

+ 9 - 4
shadowsocksr-libev/patches/104-fix-use-after-free.patch → shadowsocksr-libev/patches/104-pointer-used-after-free.patch

@@ -1,11 +1,16 @@
 --- a/server/server.c
 --- a/server/server.c
 +++ b/server/server.c
 +++ b/server/server.c
-@@ -1943,7 +1943,7 @@ main(int argc, char **argv)
+@@ -1942,12 +1942,12 @@
+             text = (char*)malloc(strlen(protocol) - 11);
              memcpy(text, protocol, strlen(protocol) - 11);
              memcpy(text, protocol, strlen(protocol) - 11);
              int length = strlen(protocol) - 11;
              int length = strlen(protocol) - 11;
-             free(protocol);
--            obfs = (char*)malloc(length);
-+            protocol = (char*)malloc(length);
+-            free(protocol);
+             obfs = (char*)malloc(length);
              memset(protocol, 0x00, length);
              memset(protocol, 0x00, length);
              memcpy(protocol, text, length);
              memcpy(protocol, text, length);
              LOGI("protocol compatible enable, %s", protocol);
              LOGI("protocol compatible enable, %s", protocol);
+             free(text);
++            free(protocol);
+             protocol_compatible = 1;
+         }
+     }

+ 16 - 1
shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch

@@ -14,6 +14,8 @@ Signed-off-by: sbwml <[email protected]>
  delete mode 100644 m4/pcre.m4
  delete mode 100644 m4/pcre.m4
  create mode 100644 m4/pcre2.m4
  create mode 100644 m4/pcre2.m4
 
 
+diff --git a/configure.ac b/configure.ac
+index f9c51ab..0513db0 100755
 --- a/configure.ac
 --- a/configure.ac
 +++ b/configure.ac
 +++ b/configure.ac
 @@ -20,10 +20,10 @@ AC_DISABLE_STATIC
 @@ -20,10 +20,10 @@ AC_DISABLE_STATIC
@@ -31,6 +33,9 @@ Signed-off-by: sbwml <[email protected]>
  fi
  fi
  
  
  dnl Checks for using shared libraries from system
  dnl Checks for using shared libraries from system
+diff --git a/m4/pcre.m4 b/m4/pcre.m4
+deleted file mode 100644
+index 4d965bc..0000000
 --- a/m4/pcre.m4
 --- a/m4/pcre.m4
 +++ /dev/null
 +++ /dev/null
 @@ -1,152 +0,0 @@
 @@ -1,152 +0,0 @@
@@ -186,6 +191,9 @@ Signed-off-by: sbwml <[email protected]>
 -AC_SUBST(pcreh)
 -AC_SUBST(pcreh)
 -AC_SUBST(pcre_pcreh)
 -AC_SUBST(pcre_pcreh)
 -])
 -])
+diff --git a/m4/pcre2.m4 b/m4/pcre2.m4
+new file mode 100644
+index 0000000..fcec4b7
 --- /dev/null
 --- /dev/null
 +++ b/m4/pcre2.m4
 +++ b/m4/pcre2.m4
 @@ -0,0 +1,181 @@
 @@ -0,0 +1,181 @@
@@ -370,6 +378,8 @@ Signed-off-by: sbwml <[email protected]>
 +AC_SUBST(pcre2h)
 +AC_SUBST(pcre2h)
 +AC_SUBST(pcre2_pcre2h)
 +AC_SUBST(pcre2_pcre2h)
 +])
 +])
+diff --git a/src/rule.c b/src/rule.c
+index 8aae04e..41ba5e7 100644
 --- a/src/rule.c
 --- a/src/rule.c
 +++ b/src/rule.c
 +++ b/src/rule.c
 @@ -82,14 +82,28 @@ int
 @@ -82,14 +82,28 @@ int
@@ -407,7 +417,7 @@ Signed-off-by: sbwml <[email protected]>
              return 0;
              return 0;
          }
          }
      }
      }
-@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *ru
+@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *rules, const char *name, size_t name_len)
  
  
      cork_dllist_foreach_void(rules, curr, next) {
      cork_dllist_foreach_void(rules, curr, next) {
          rule_t *rule = cork_container_of(curr, rule_t, entries);
          rule_t *rule = cork_container_of(curr, rule_t, entries);
@@ -441,6 +451,8 @@ Signed-off-by: sbwml <[email protected]>
 +    }
 +    }
      ss_free(rule);
      ss_free(rule);
  }
  }
+diff --git a/src/rule.h b/src/rule.h
+index 015bc42..84a89af 100644
 --- a/src/rule.h
 --- a/src/rule.h
 +++ b/src/rule.h
 +++ b/src/rule.h
 @@ -33,17 +33,27 @@
 @@ -33,17 +33,27 @@
@@ -477,3 +489,6 @@ Signed-off-by: sbwml <[email protected]>
  
  
      struct cork_dllist_item entries;
      struct cork_dllist_item entries;
  } rule_t;
  } rule_t;
+-- 
+2.42.0
+