Download raw body.
use size_t for loop indices to avoid signedness warnings
On Thu, Dec 17, 2020 at 09:52:58AM -0500, Ed Maste wrote: > Same change as 16aeacf7088d, for subdirectories other than lib/ Unfortunately, this patch introduced a segfault in one of the tests: > @@ -175,7 +175,7 @@ path_list_reverse_input(void) > const struct got_error *err = NULL; > struct got_pathlist_head paths; > struct got_pathlist_entry *pe; > - int i; > + size_t i; > > TAILQ_INIT(&paths); > for (i = nitems(path_list_input) - 1; i >= 0; i--) { Note that the condition i >= 0 is always true for an unsigned type. The loop no longer stops iterating and eventually attempts to index the array path_list_input with a very large value after i overflows. I guess changing i to ssize_t would be one possibility, but I don't know if that will bring back the warnings you were trying to avoid. So instead I have removed the assumption that i can become negative: commit 8891c2aba6a5f6cd43ab51b67115d4fbd0976f73 (main) from: Stefan Sperling <stsp@stsp.name> date: Thu Dec 17 20:46:54 2020 UTC fix crash in path_list_reverse_input() after switch to unsigned loop index diff e8f0f2f60d1eb5651a01b13607ca04014f092753 a46ac2cbc24e20b46540307ad7cfa4fca47c566a blob - 792c8cdc3d09be7a750bb57780cb89ea60c1e627 blob + 231a6477402c69e760b2ab21b75fee238ebbddff --- regress/path/path_test.c +++ regress/path/path_test.c @@ -178,7 +178,7 @@ path_list_reverse_input(void) size_t i; TAILQ_INIT(&paths); - for (i = nitems(path_list_input) - 1; i >= 0; i--) { + for (i = nitems(path_list_input) - 1; i > 0; i--) { err = got_pathlist_insert(NULL, &paths, path_list_input[i], NULL); if (err) { @@ -186,6 +186,11 @@ path_list_reverse_input(void) return 0; } } + err = got_pathlist_insert(NULL, &paths, path_list_input[0], NULL); + if (err) { + test_printf("%s\n", __func__, err->msg); + return 0; + } i = 0; TAILQ_FOREACH(pe, &paths, entry) {
use size_t for loop indices to avoid signedness warnings