Control: tags -1 + patch

This patch seem to solve the issue.  It also solve a similar issue with
the next qsort() call, which happen to not crash as there is less
validation of the char* content being compared.

--- nslint-salsa.orig/nslint.c  2024-08-13 11:40:01.746543401 +0200
+++ nslint-salsa/nslint.c       2024-08-13 11:40:18.746731846 +0200
@@ -629,8 +629,8 @@
 {
        struct item *i1, *i2;
 
-       i1 = (struct item *)arg1;
-       i2 = (struct item *)arg2;
+       i1 = *(struct item **)arg1;
+       i2 = *(struct item **)arg2;
 
        return (cmpaddr(&i1->addr, &i2->addr));
 }
@@ -640,8 +640,8 @@
 {
        struct item *i1, *i2;
 
-       i1 = (struct item *)arg1;
-       i2 = (struct item *)arg2;
+       i1 = *(struct item **)arg1;
+       i2 = *(struct item **)arg2;
 
        return (strcasecmp(i1->host, i1->host));
 }
@@ -1740,7 +1740,7 @@
 
        /* Check for doubly booked addresses */
        n = ipp - itemlist;
-       qsort(itemlist, n, sizeof(itemlist[0]), cmpaddr);
+       qsort(itemlist, n, sizeof(itemlist[0]), cmpitemaddr);
        memset(&lastaddr, 0, sizeof(lastaddr));
        ip = NULL;
        for (ipp = itemlist; n > 0; ++ipp, --n) {

-- 
Happy hacking
Petter Reinholdtsen

Reply via email to