https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=c8168e888eb42870e10e6d9d96609d4c3cf2e06d

Fixes this.

A NULL pointer is only ever passed when the array size is zero, and real world qsort() implementations seem to behave in a sensible manner under those conditions, so this isn't a problem that's going to inconvenience anyone. Good to get it right anyway.


Thanks for the report.


Simon.

On 09.03.2026 13:24, fuyulai2024 wrote:
## Description

```

dnsmasq attempts to pass a null pointer (NULL) to a function in the domain-match.c file at line 82,

while the function's parameter is declared as nonnull (i.e., it must not be NULL).

As declared in the function's parameter attributes in C, the function expects to receive a non-null pointer.

However, dnsmasq passes a null pointer during the function call, which may lead to a program crash.

```

## Running Environment

```

Distributor ID: Ubuntu

Description: Ubuntu 20.04.6 LTS

Release: 20.04

Codename: focal

```

## Protocol Implementation Version

```

root@cbf1f9c04f26:~/dnsmasq/src# git log --oneline

ee09f06 (HEAD -> master, origin/master, origin/HEAD) Optimise tftp.

1e83316 (tag: v2.92test21) Formatting.

9a566c0 Tweak recently altered TFTP code.

```

## Build

```

export CC=afl-clang-fast

export CXX=afl-clang-fast++

make COPTS="-g -fsanitize=address,undefined -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address,undefined"

```

## Logs

```

root@cbf1f9c04f26:~/dnsmasq/src# ./dnsmasq -p 5353 -d -C /root/dnsmasq/ dnsmasq.conf -8 /var/log/dnsmasq/dnsmasq.log

pc_guard: [INIT] bitmap has been allocted from addr 8696316 to 8914568 [ 54563 bits - ratio: 100%]

lucky: [INIT] bitmap has been allocted from idx 1 to 54563

lucky: [INIT]inital edge cnt: 2119

Shared Memory: /dev/shm/cov_bitmap_dns

dnsmasq: started, version 2.92test21-1-gee09f06 cachesize 150

dnsmasq: compile time options: IPv6 GNU-getopt no-DBus no-UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset no-nftset auth no- DNSSEC loop-detect inotify dumpfile

domain-match.c:82:9: runtime error: null pointer passed as argument 1, which is declared to never be null

/usr/include/stdlib.h:831:30: note: nonnull attribute specified here

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior domain- match.c:82:9 in

dnsmasq: reading /etc/resolv.conf

dnsmasq: using nameserver 192.168.65.7#53

dnsmasq: read /etc/hosts - 9 names

```



_______________________________________________
Dnsmasq-discuss mailing list
[email protected]
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss


_______________________________________________
Dnsmasq-discuss mailing list
[email protected]
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to