nginx: Harden patches for using pkg-config
PATCH v2 1/1 nginx: Harden patches for using pkg-config
Don't simply remove "-I" from the output of pkg-config --cflags-only-I but match the -I argument more generally.
--- package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch | 5 +++-- package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch +3 -2
@@ -15,13 +15,14 @@ diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf index 3a0f37b..3c2a60e 100644 --- a/auto/lib/libxslt/conf +++ b/auto/lib/libxslt/conf -@@ -12,8 +12,8 @@ +@@ -12,9 +12,9 @@ #include <libxslt/xsltInternals.h> #include <libxslt/transform.h> #include <libxslt/xsltutils.h>" - ngx_feature_path="/usr/include/libxml2" - ngx_feature_libs="-lxml2 -lxslt" -+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I libxslt|sed 's/-I//g')" ++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I libxslt| ++ sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs libxslt)" ngx_feature_test="xmlParserCtxtPtr ctxt = NULL; xsltStylesheetPtr sheet = NULL;
package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch +3 -2
@@ -15,13 +15,14 @@ diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf index 39d9602..995c6f3 100644 --- a/auto/lib/openssl/conf +++ b/auto/lib/openssl/conf -@@ -58,8 +58,8 @@ else +@@ -58,9 +58,9 @@ else ngx_feature_name="NGX_OPENSSL" ngx_feature_run=no ngx_feature_incs="#include <openssl/ssl.h>" - ngx_feature_path= - ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL" -+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl|sed 's/-I//g')" ++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl| ++ sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl)" ngx_feature_test="SSL_CTX_set_options(NULL, 0)" . auto/feature
Signature · 1 line
2.14.1
v2 cover nginx: Harden patches for using pkg-config
Hi again,
A second attempt, fixing the chunk ranges. It appears recountdiff, which is probably used by Emacs in diff mode, interprets the signature separator line "-- " as a line removal and fixes the ranges wrong.
A fixed patch with fixed ranges follows.
Cheers,
Ignacy
Ignacy Gaw?dzki (1):
nginx: Harden patches for using pkg-config
package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch | 5 +++-- package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
Signature · 1 line
2.14.1
PATCH v2 1/1 nginx: Harden patches for using pkg-config
In reply to Ignacy GawędzkiDon't simply remove "-I" from the output of pkg-config --cflags-only-I but match the -I argument more generally.
--- package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch | 5 +++-- package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch +3 -2
@@ -15,13 +15,14 @@ diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf index 3a0f37b..3c2a60e 100644 --- a/auto/lib/libxslt/conf +++ b/auto/lib/libxslt/conf -@@ -12,8 +12,8 @@ +@@ -12,8 +12,9 @@ #include <libxslt/xsltInternals.h> #include <libxslt/transform.h> #include <libxslt/xsltutils.h>" - ngx_feature_path="/usr/include/libxml2" - ngx_feature_libs="-lxml2 -lxslt" -+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I libxslt|sed 's/-I//g')" ++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I libxslt| ++ sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs libxslt)" ngx_feature_test="xmlParserCtxtPtr ctxt = NULL; xsltStylesheetPtr sheet = NULL;
package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch +3 -2
@@ -15,13 +15,14 @@ diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf index 39d9602..995c6f3 100644 --- a/auto/lib/openssl/conf +++ b/auto/lib/openssl/conf -@@ -58,8 +58,8 @@ else +@@ -58,8 +58,9 @@ else ngx_feature_name="NGX_OPENSSL" ngx_feature_run=no ngx_feature_incs="#include <openssl/ssl.h>" - ngx_feature_path= - ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL" -+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl|sed 's/-I//g')" ++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl| ++ sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')" + ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl)" ngx_feature_test="SSL_CTX_set_options(NULL, 0)" . auto/feature
Signature · 1 line
2.14.1
PATCH v2 1/1 nginx: Harden patches for using pkg-config
Hello,
Quoted 2 lines · Ignacy Gaw?dzki
Don't simply remove "-I" from the output of pkg-config --cflags-only-I but match the -I argument more generally.
OK, but why? What is this fixing?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 1/1 nginx: Harden patches for using pkg-config
On Tue, Dec 19, 2017 at 01:43:16PM +0100, thus spake Thomas Petazzoni:
Quoted 7 lines
Hello,
Quoted 2 lines · Ignacy Gaw?dzki
Don't simply remove "-I" from the output of pkg-config --cflags-only-I but match the -I argument more generally.
OK, but why? What is this fixing?
Suppose that the lib has been installed in /usr/Some-Install-Location/ then pkg-config --cflags-only-I may return
-I/usr/Some-Install-Location/include
which, piped through sed 's/-I//g' would end up being
/usr/Somenstall-Location/include
which is probably not going to work.
Signature · 3 lines
Ignacy Gaw?dzki R&D Engineer Green Communications
PATCH v2 1/1 nginx: Harden patches for using pkg-config
Hello,
Quoted 12 lines · Ignacy Gaw?dzki
On Tue, Dec 19, 2017 at 01:43:16PM +0100, thus spake Thomas Petazzoni:
Quoted 7 lines
Hello,
Quoted 2 lines · Ignacy Gaw?dzki
Don't simply remove "-I" from the output of pkg-config --cflags-only-I but match the -I argument more generally.
OK, but why? What is this fixing?
Suppose that the lib has been installed in
/usr/Some-Install-Location/then pkg-config --cflags-only-I may return
Quoted 7 lines
-I/usr/Some-Install-Location/include
which, piped through sed 's/-I//g' would end up being
/usr/Somenstall-Location/includewhich is probably not going to work.
Indeed, makes total sense. I've applied your patch, after rewording the commit log to be clearer about what is being fixed. Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com