From d3c7acb137134bddff3bc8a8964600252d3fb674 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 19 Sep 2019 13:17:48 +0200 Subject: [PATCH] iter: add helper to parse pod from memory region --- spa/include/spa/pod/iter.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spa/include/spa/pod/iter.h b/spa/include/spa/pod/iter.h index e196ee661..6b265808a 100644 --- a/spa/include/spa/pod/iter.h +++ b/spa/include/spa/pod/iter.h @@ -126,6 +126,17 @@ static inline struct spa_pod_control *spa_pod_control_next(const struct spa_pod_ SPA_POD_SEQUENCE_BODY_FOREACH(&(seq)->body, SPA_POD_BODY_SIZE(seq), iter) +static inline void *spa_pod_from_data(void *data, size_t maxsize, off_t offset, size_t size) +{ + void *pod; + if (offset + size > maxsize) + return NULL; + pod = SPA_MEMBER(data, offset, void); + if (SPA_POD_SIZE(pod) > size) + return NULL; + return pod; +} + static inline int spa_pod_is_none(const struct spa_pod *pod) { return (SPA_POD_TYPE(pod) == SPA_TYPE_None);