diff --git a/spa/include/spa/pod/parser.h b/spa/include/spa/pod/parser.h index bab03092a..a76f2fef4 100644 --- a/spa/include/spa/pod/parser.h +++ b/spa/include/spa/pod/parser.h @@ -286,7 +286,8 @@ SPA_API_POD_PARSER bool spa_pod_parser_can_collect(const struct spa_pod *pod, ch return true; if (SPA_POD_CHOICE_TYPE(pod) != SPA_CHOICE_None) return false; - if (SPA_POD_CHOICE_N_VALUES(pod) < 1) + if (pod->size - sizeof(struct spa_pod_choice_body) < + SPA_POD_CHOICE_VALUE_SIZE(pod)) return false; pod = SPA_POD_CHOICE_CHILD(pod); }