Module Name:    src
Committed By:   rillig
Date:           Wed Sep 30 06:27:02 UTC 2020

Modified Files:
        src/usr.bin/make: lst.c

Log Message:
make(1): remove redundant assertions in lst.c

These pointers are dereferenced shortly after the assertion, which
reliably leads to a SIGSEGV.


To generate a diff of this commit:
cvs rdiff -u -r1.73 -r1.74 src/usr.bin/make/lst.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/lst.c
diff -u src/usr.bin/make/lst.c:1.73 src/usr.bin/make/lst.c:1.74
--- src/usr.bin/make/lst.c:1.73	Sun Sep 27 21:35:16 2020
+++ src/usr.bin/make/lst.c	Wed Sep 30 06:27:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: lst.c,v 1.73 2020/09/27 21:35:16 rillig Exp $ */
+/* $NetBSD: lst.c,v 1.74 2020/09/30 06:27:02 rillig Exp $ */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -34,7 +34,7 @@
 
 #include "make.h"
 
-MAKE_RCSID("$NetBSD: lst.c,v 1.73 2020/09/27 21:35:16 rillig Exp $");
+MAKE_RCSID("$NetBSD: lst.c,v 1.74 2020/09/30 06:27:02 rillig Exp $");
 
 /* Allocate and initialize a list node.
  *
@@ -79,8 +79,6 @@ Lst_Copy(List *list, LstCopyProc copyPro
     List *newList;
     ListNode *node;
 
-    assert(list != NULL);
-
     newList = Lst_Init();
 
     for (node = list->first; node != NULL; node = node->next) {
@@ -98,8 +96,6 @@ Lst_Free(List *list)
     ListNode *node;
     ListNode *next;
 
-    assert(list != NULL);
-
     for (node = list->first; node != NULL; node = next) {
 	next = node->next;
 	free(node);
@@ -116,9 +112,6 @@ Lst_Destroy(List *list, LstFreeProc free
     ListNode *node;
     ListNode *next;
 
-    assert(list != NULL);
-    assert(freeProc != NULL);
-
     for (node = list->first; node != NULL; node = next) {
 	next = node->next;
 	freeProc(node->datum);
@@ -139,9 +132,7 @@ Lst_InsertBefore(List *list, ListNode *n
 {
     ListNode *newNode;
 
-    assert(list != NULL);
     assert(!LstIsEmpty(list));
-    assert(node != NULL);
     assert(datum != NULL);
 
     newNode = LstNodeNew(datum);
@@ -164,7 +155,6 @@ Lst_Prepend(List *list, void *datum)
 {
     ListNode *node;
 
-    assert(list != NULL);
     assert(datum != NULL);
 
     node = LstNodeNew(datum);
@@ -186,7 +176,6 @@ Lst_Append(List *list, void *datum)
 {
     ListNode *node;
 
-    assert(list != NULL);
     assert(datum != NULL);
 
     node = LstNodeNew(datum);
@@ -207,9 +196,6 @@ Lst_Append(List *list, void *datum)
 void
 Lst_Remove(List *list, ListNode *node)
 {
-    assert(list != NULL);
-    assert(node != NULL);
-
     /*
      * unlink it from the list
      */
@@ -259,18 +245,16 @@ Lst_Remove(List *list, ListNode *node)
 void
 LstNode_Set(ListNode *node, void *datum)
 {
-    assert(node != NULL);
     assert(datum != NULL);
 
     node->datum = datum;
 }
 
-/* Replace the datum in the given node to NULL. */
+/* Replace the datum in the given node to NULL.
+ * Having NULL values in a list is unusual though. */
 void
 LstNode_SetNull(ListNode *node)
 {
-    assert(node != NULL);
-
     node->datum = NULL;
 }
 
@@ -313,7 +297,6 @@ Lst_FindDatum(List *list, const void *da
 {
     ListNode *node;
 
-    assert(list != NULL);
     assert(datum != NULL);
 
     for (node = list->first; node != NULL; node = node->next) {
@@ -358,7 +341,7 @@ Lst_ForEachUntil(List *list, LstActionUn
 	Boolean done = next == NULL;
 
 	tln->priv_useCount++;
-	result = (*proc)(tln->datum, procData);
+	result = proc(tln->datum, procData);
 	tln->priv_useCount--;
 
 	/*
@@ -387,9 +370,6 @@ Lst_ForEachUntil(List *list, LstActionUn
 void
 Lst_MoveAll(List *list1, List *list2)
 {
-    assert(list1 != NULL);
-    assert(list2 != NULL);
-
     if (list2->first != NULL) {
 	list2->first->prev = list1->last;
 	if (list1->last != NULL) {
@@ -435,7 +415,6 @@ Lst_AppendAll(List *dst, List *src)
 void
 Lst_Open(List *list)
 {
-    assert(list != NULL);
     assert(!list->priv_isOpen);
 
     list->priv_isOpen = TRUE;
@@ -450,7 +429,6 @@ Lst_Next(List *list)
 {
     ListNode *node;
 
-    assert(list != NULL);
     assert(list->priv_isOpen);
 
     list->priv_prev = list->priv_curr;
@@ -492,7 +470,6 @@ Lst_Next(List *list)
 void
 Lst_Close(List *list)
 {
-    assert(list != NULL);
     assert(list->priv_isOpen);
 
     list->priv_isOpen = FALSE;
@@ -515,14 +492,9 @@ Lst_Enqueue(List *list, void *datum)
 void *
 Lst_Dequeue(List *list)
 {
-    void *datum;
-
-    assert(list != NULL);
-    assert(!LstIsEmpty(list));
-
-    datum = list->first->datum;
+    void *datum = list->first->datum;
     Lst_Remove(list, list->first);
-    assert(datum != NULL);
+    assert(datum != NULL);	/* since NULL would mean end of the list */
     return datum;
 }
 

Reply via email to