pod: ensure strings are NUL-terminated before calling strlen()

SPA_TYPE_String needs to be NUL-terminated, so check that in
spa_pod_compare_value().
This commit is contained in:
Demi Marie Obenour 2025-07-10 12:08:37 -04:00 committed by Wim Taymans
parent 5bfc3e6b03
commit 7ac94f1a69

View file

@ -63,7 +63,9 @@ SPA_API_POD_COMPARE int spa_pod_compare_value(uint32_t type, const void *r1, con
return -EINVAL; return -EINVAL;
return SPA_CMP(*(double *)r1, *(double *)r2); return SPA_CMP(*(double *)r1, *(double *)r2);
case SPA_TYPE_String: case SPA_TYPE_String:
if (size < sizeof(char)) if (size < sizeof(char) ||
((char *)r1)[size - 1] ||
((char *)r2)[size - 1])
return -EINVAL; return -EINVAL;
return strcmp((char *)r1, (char *)r2); return strcmp((char *)r1, (char *)r2);
case SPA_TYPE_Rectangle: case SPA_TYPE_Rectangle: