|
|
- POSIX says that behavior when subopts list is empty is undefined.
- musl libs will set value to NULL which leads to crash.
-
- Simply avoid getsubopt, since we cannot rely on it.
-
- diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp
- index 3ea6cd3..291fb3e 100644
- --- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
- +++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
- @@ -692,16 +692,17 @@ static bool parse_subset(char *optarg)
-
- static bool parse_next_subopt(char **subs, char **value)
- {
- - static char *const subopts[] = {
- - NULL
- - };
- - int opt = getsubopt(subs, subopts, value);
- + char *p = *subs;
- + *value = *subs;
-
- - if (opt < 0 || *value)
- - return false;
- - fprintf(stderr, "No value given to suboption <%s>\n",
- - subopts[opt]);
- - return true;
- + while (*p && *p != ',')
- + p++;
- +
- + if (*p)
- + *p++ = '\0';
- +
- + *subs = p;
- + return false;
- }
-
- void common_cmd(int ch, char *optarg)
|