Re: [PATCH iproute2] tc: fix bpf compilation with old glibc
On Wed, 22 Jul 2015 14:29:30 +0200 Nicolas Dichtel nicolas.dich...@6wind.com wrote: Error was: f_bpf.o: In function `bpf_parse_opt': f_bpf.c:(.text+0x88f): undefined reference to `secure_getenv' m_bpf.o: In function `parse_bpf': m_bpf.c:(.text+0x587): undefined reference to `secure_getenv' collect2: error: ld returned 1 exit status CC: Daniel Borkmann dan...@iogearbox.net Fixes: 88eea5395483 (tc: {f,m}_bpf: allow to retrieve uds path from env) Signed-off-by: Nicolas Dichtel nicolas.dich...@6wind.com Applied thanks. -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH iproute2] tc: fix bpf compilation with old glibc
On Wed, 22 Jul 2015 13:05:32 + Daniel Borkmann dan...@iogearbox.net wrote: On 07/22/2015 02:29 PM, Nicolas Dichtel wrote: Error was: f_bpf.o: In function `bpf_parse_opt': f_bpf.c:(.text+0x88f): undefined reference to `secure_getenv' m_bpf.o: In function `parse_bpf': m_bpf.c:(.text+0x587): undefined reference to `secure_getenv' collect2: error: ld returned 1 exit status CC: Daniel Borkmann dan...@iogearbox.net Fixes: 88eea5395483 (tc: {f,m}_bpf: allow to retrieve uds path from env) Signed-off-by: Nicolas Dichtel nicolas.dich...@6wind.com Thanks Nicolas! I am thinking we should probably just stick to getenv() and convert these two users. Thanks, Daniel Yes, please use getenv() unless there is a obvious special security requirement involved. -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH iproute2] tc: fix bpf compilation with old glibc
On 07/22/2015 02:29 PM, Nicolas Dichtel wrote: Error was: f_bpf.o: In function `bpf_parse_opt': f_bpf.c:(.text+0x88f): undefined reference to `secure_getenv' m_bpf.o: In function `parse_bpf': m_bpf.c:(.text+0x587): undefined reference to `secure_getenv' collect2: error: ld returned 1 exit status CC: Daniel Borkmann dan...@iogearbox.net Fixes: 88eea5395483 (tc: {f,m}_bpf: allow to retrieve uds path from env) Signed-off-by: Nicolas Dichtel nicolas.dich...@6wind.com Thanks Nicolas! I am thinking we should probably just stick to getenv() and convert these two users. Thanks, Daniel -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH iproute2] tc: fix bpf compilation with old glibc
Le 22/07/2015 15:05, Daniel Borkmann a écrit : On 07/22/2015 02:29 PM, Nicolas Dichtel wrote: Error was: f_bpf.o: In function `bpf_parse_opt': f_bpf.c:(.text+0x88f): undefined reference to `secure_getenv' m_bpf.o: In function `parse_bpf': m_bpf.c:(.text+0x587): undefined reference to `secure_getenv' collect2: error: ld returned 1 exit status CC: Daniel Borkmann dan...@iogearbox.net Fixes: 88eea5395483 (tc: {f,m}_bpf: allow to retrieve uds path from env) Signed-off-by: Nicolas Dichtel nicolas.dich...@6wind.com Thanks Nicolas! I am thinking we should probably just stick to getenv() and convert these two users. As you want, I don't have a strong opinion on this. Stephen? Regards, Nicolas -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH iproute2] tc: fix bpf compilation with old glibc
Error was: f_bpf.o: In function `bpf_parse_opt': f_bpf.c:(.text+0x88f): undefined reference to `secure_getenv' m_bpf.o: In function `parse_bpf': m_bpf.c:(.text+0x587): undefined reference to `secure_getenv' collect2: error: ld returned 1 exit status CC: Daniel Borkmann dan...@iogearbox.net Fixes: 88eea5395483 (tc: {f,m}_bpf: allow to retrieve uds path from env) Signed-off-by: Nicolas Dichtel nicolas.dich...@6wind.com --- configure | 49 +++-- tc/Makefile | 6 ++ tc/tc_bpf.h | 9 + 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 3ae4c955ae8e..1eacdc67dbb9 100755 --- a/configure +++ b/configure @@ -289,12 +289,54 @@ check_mnl() if ${PKG_CONFIG} libmnl --exists then echo HAVE_MNL:=y Config - echo -n yes + echo yes else - echo -n no + echo no fi } +check_secure_getenv() +{ + #check if we have secure_getenv() + cat $TMPDIR/secure_getenv_test.c EOF +#include stdlib.h + +int main(int argc, char **argv) +{ + secure_getenv(foo); + return 0; +} +EOF + + $CC -I$INCLUDE -o $TMPDIR/secure_getenv_test $TMPDIR/secure_getenv_test.c /dev/null 21 + if [ $? -eq 0 ] + then + echo HAVE_SECURE_GETENV:=y Config + echo yes + else + #check if we have __secure_getenv() + cat $TMPDIR/secure_getenv_test.c EOF +#include stdlib.h + +int main(int argc, char **argv) +{ + __secure_getenv(foo); + return 0; +} +EOF + + $CC -I$INCLUDE -o $TMPDIR/secure_getenv_test $TMPDIR/secure_getenv_test.c /dev/null 21 + if [ $? -eq 0 ] + then + echo HAVE___SECURE_GETENV:=y Config + echo yes + else + echo no + fi + fi + rm -f $TMPDIR/secure_getenv_test.c $TMPDIR/secure_getenv_test +} + echo # Generated config based on $INCLUDE Config check_toolchain @@ -328,6 +370,9 @@ check_elf echo -n libmnl support: check_mnl +echo -n secure_getenv() support: +check_secure_getenv + echo echo -n docs: check_docs diff --git a/tc/Makefile b/tc/Makefile index 56acbaa1ab13..d598fc29532f 100644 --- a/tc/Makefile +++ b/tc/Makefile @@ -7,6 +7,12 @@ include ../Config ifeq ($(IP_CONFIG_SETNS),y) CFLAGS += -DHAVE_SETNS endif +ifeq ($(HAVE_SECURE_GETENV),y) + CFLAGS += -DHAVE_SECURE_GETENV +endif +ifeq ($(HAVE___SECURE_GETENV),y) + CFLAGS += -DHAVE___SECURE_GETENV +endif SHARED_LIBS ?= y diff --git a/tc/tc_bpf.h b/tc/tc_bpf.h index 2ad881219e68..2e4b1a985f05 100644 --- a/tc/tc_bpf.h +++ b/tc/tc_bpf.h @@ -21,12 +21,21 @@ #include errno.h #include stdio.h #include stdint.h +#include stdlib.h #include utils.h #include bpf_scm.h #define BPF_ENV_UDSTC_BPF_UDS +#ifndef HAVE_SECURE_GETENV +# ifdef HAVE___SECURE_GETENV +#define secure_getenv __secure_getenv +# else +#error neither secure_getenv nor __secure_getenv is available +# endif +#endif + int bpf_parse_string(char *arg, bool from_file, __u16 *bpf_len, char **bpf_string, bool *need_release, const char separator); -- 2.4.2 -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html