[Openvpn-devel,v2,1/2] dns: fix discards 'const' qualifier from pointer target type

Message ID aZMIXom9GFt17IpB@8076c497f57d
State Accepted
Headers show
Series [Openvpn-devel,v2,1/2] dns: fix discards 'const' qualifier from pointer target type | expand

Commit Message

Rudi Heitbaum Feb. 16, 2026, 12:06 p.m. UTC
Since glibc-2.43:

For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return pointers
into their input arrays now have definitions as macros that return a
pointer to a const-qualified type when the input argument is a pointer
to a const-qualified type.

fixes:
    src/openvpn/dns.c: In function 'dns_server_addr_parse':
    src/openvpn/dns.c:67:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       67 |     char *first_colon = strchr(addr, ':');
          |                         ^~~~~~
    src/openvpn/dns.c:68:24: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       68 |     char *last_colon = strrchr(addr, ':');
          |                        ^~~~~~~

Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
---
 src/openvpn/dns.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Frank Lichtenheld Feb. 18, 2026, noon UTC | #1
On Mon, Feb 16, 2026 at 12:06:54PM +0000, Rudi Heitbaum via Openvpn-devel wrote:
> Since glibc-2.43:
> 
> For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
> strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return pointers
> into their input arrays now have definitions as macros that return a
> pointer to a const-qualified type when the input argument is a pointer
> to a const-qualified type.
> 
> fixes:
>     src/openvpn/dns.c: In function 'dns_server_addr_parse':
>     src/openvpn/dns.c:67:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
>        67 |     char *first_colon = strchr(addr, ':');
>           |                         ^~~~~~
>     src/openvpn/dns.c:68:24: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
>        68 |     char *last_colon = strrchr(addr, ':');
>           |                        ^~~~~~~
> 
> Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
> ---
>  src/openvpn/dns.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)


Since upgrading the arch container yesterday we also see these in our
CI builds now.

Acked-by: Frank Lichtenheld <frank@lichtenheld.com>

Also put this into Gerrit as https://gerrit.openvpn.net/c/openvpn/+/1542
to get test builds.

Regards,

Patch

diff --git a/src/openvpn/dns.c b/src/openvpn/dns.c
index c00d4b9c..38739923 100644
--- a/src/openvpn/dns.c
+++ b/src/openvpn/dns.c
@@ -45,7 +45,7 @@ 
  * @return              True if parsing was successful
  */
 static bool
-dns_server_port_parse(in_port_t *port, char *port_str)
+dns_server_port_parse(in_port_t *port, const char *port_str)
 {
     char *endptr;
     errno = 0;
@@ -71,8 +71,8 @@  dns_server_addr_parse(struct dns_server *server, const char *addr)
     in_port_t port = 0;
     sa_family_t af;
 
-    char *first_colon = strchr(addr, ':');
-    char *last_colon = strrchr(addr, ':');
+    const char *first_colon = strchr(addr, ':');
+    const char *last_colon = strrchr(addr, ':');
 
     if (!first_colon || first_colon == last_colon)
     {
@@ -93,7 +93,7 @@  dns_server_addr_parse(struct dns_server *server, const char *addr)
         if (addr[0] == '[')
         {
             addr += 1;
-            char *bracket = last_colon - 1;
+            const char *bracket = last_colon - 1;
             if (*bracket != ']' || bracket == addr || !dns_server_port_parse(&port, last_colon + 1))
             {
                 return false;