getopt: fix null pointer arithmetic ub
[musl] / src / misc / getopt.c
index c3f6699..b02b81c 100644 (file)
@@ -87,7 +87,8 @@ int getopt(int argc, char * const argv[], const char *optstring)
        if (optstring[i] == ':') {
                optarg = 0;
                if (optstring[i+1] != ':' || optpos) {
-                       optarg = argv[optind++] + optpos;
+                       optarg = argv[optind++];
+                       if (optpos) optarg += optpos;
                        optpos = 0;
                }
                if (optind > argc) {