Menu

Fails to build with gcc 14: qsfilter2.c: error: passing argument 1 of OPENSSL_sk_new from incompatible pointer type

Craig
2024-07-25
2025-01-03
  • Craig

    Craig - 2024-07-25

    The current latest version of mod_qos, version 11.75, does not build with GCC 14.

    gcc -DHAVE_CONFIG_H -I. -I..   -DLINUX -D_REENTRANT -D_GNU_SOURCE -Wdate-time -D_FORTIFY_SOURCE=2  -I/usr/include/libpng16 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection  -I/usr/include/apr-1.0   -I/usr/include/apr-1.0 -I/usr/include -I/usr/lib/include -c -o qsfilter2.o qsfilter2.c
    qsfilter2.c: In function main:
    qsfilter2.c:1803:38: error: passing argument 1 of OPENSSL_sk_new from incompatible pointer type [-Wincompatible-pointer-types]
     1803 |     STACK_OF(qs_rule_t) *st = sk_new(STACK_qs_cmp);
          |                                      ^~~~~~~~~~~~
          |                                      |
          |                                      int (*)(const char * const*, const char * const*)
    In file included from /usr/include/openssl/safestack.h:24,
                     from qsfilter2.c:59:
    /usr/include/openssl/stack.h:34:51: note: expected OPENSSL_sk_compfunc {aka int (*)(const void *, const void *)} but argument is of type int (*)(const char * const*, const char * const*)
       34 | OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp);
          |                               ~~~~~~~~~~~~~~~~~~~~^~~
    qsfilter2.c:1803:31: error: initialization of struct stack_st_qs_rule_t * from incompatible pointer type OPENSSL_STACK * {aka struct stack_st *} [-Wincompatible-pointer-types]
     1803 |     STACK_OF(qs_rule_t) *st = sk_new(STACK_qs_cmp);
          |                               ^~~~~~
    qsfilter2.c:1811:15: error: passing argument 1 of OPENSSL_sk_push from incompatible pointer type [-Wincompatible-pointer-types]
     1811 |       sk_push(st, (char *)r);
          |               ^~
          |               |
          |               struct stack_st_qs_rule_t *
    /usr/include/openssl/stack.h:49:36: note: expected OPENSSL_STACK * {aka struct stack_st *} but argument is of type struct stack_st_qs_rule_t *
       49 | int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data);
          |                     ~~~~~~~~~~~~~~~^~
    qsfilter2.c:1813:13: error: passing argument 1 of OPENSSL_sk_sort from incompatible pointer type [-Wincompatible-pointer-types]
     1813 |     sk_sort(st);
          |             ^~
          |             |
          |             struct stack_st_qs_rule_t *
    /usr/include/openssl/stack.h:57:37: note: expected OPENSSL_STACK * {aka struct stack_st *} but argument is of type struct stack_st_qs_rule_t *
       57 | void OPENSSL_sk_sort(OPENSSL_STACK *st);
          |                      ~~~~~~~~~~~~~~~^~
    qsfilter2.c:1814:16: error: passing argument 1 of OPENSSL_sk_num from incompatible pointer type [-Wincompatible-pointer-types]
     1814 |     i = sk_num(st);
          |                ^~
          |                |
          |                struct stack_st_qs_rule_t *
    /usr/include/openssl/stack.h:29:20: note: expected const OPENSSL_STACK * {aka const struct stack_st *} but argument is of type struct stack_st_qs_rule_t *
       29 | int OPENSSL_sk_num(const OPENSSL_STACK *);
          |                    ^~~~~~~~~~~~~~~~~~~~~
    qsfilter2.c:1816:33: error: passing argument 1 of OPENSSL_sk_value from incompatible pointer type [-Wincompatible-pointer-types]
     1816 |       r = (qs_rule_t *)sk_value(st, i-1);
          |                                 ^~
          |                                 |
          |                                 struct stack_st_qs_rule_t *
    /usr/include/openssl/stack.h:30:24: note: expected const OPENSSL_STACK * {aka const struct stack_st *} but argument is of type struct stack_st_qs_rule_t *
       30 | void *OPENSSL_sk_value(const OPENSSL_STACK *, int);
          |                        ^~~~~~~~~~~~~~~~~~~~~
    make[4]: *** [Makefile:542: qsfilter2.o] Error 1
    

    Debian bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075142
    Gentoo bug report: https://bugs.gentoo.org/919231

    Thank you!

     
  • Pascal Buchbinder

    Thank you for reporting the issue.

     
  • Craig

    Craig - 2025-01-03

    It appears this issue was fixed in version 11.76.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.