On 2024-04-02 19:46:59 [+0200], Nam Cao wrote: > Variable "optind" is used as the last argument of getopt_long(). This > means it "is set to the index of the long option relative to longopts" > (from man page). NULL check is then performed on argv[optind], which is > not valid, because in this case, optind is not an index to argv[]. > > There is another "optind" which is a global variable, which actually > holds the index to argv[]. This is likely the actual intention here. By > locally define another "optind", the "real optind" is shadowed in this > scope. > > Furthermore, the original optind "is the index of the next element to > be processed in argv" (from man page), not the index to the current > element. So doing NULL-check on argv[optind] with the "original optind" > is also not valid. > > There is no reason to do this NULL-check, since argv[optind] is not even > read. Only optarg is read, which is never a NULL pointer in this case. > > Delete this incorrect and unnecessary "optind". > > Signed-off-by: Nam Cao <namcao@xxxxxxxxxxxxx> Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Sebastian