From 22ac5f85ccdbcb59a924ad2f22cdd848865126d3 Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Sun, 5 May 2024 14:42:16 +0300 Subject: [PATCH] json: fix high surrogate escapes Surrogate escapes must add not or 0x10000, as the specified bits go up 0xfffff. --- spa/include/spa/utils/json.h | 2 +- test/data/test-spa-json.txt | Bin 39936 -> 42021 bytes test/test-spa-json.c | 4 ---- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/spa/include/spa/utils/json.h b/spa/include/spa/utils/json.h index 079c6dde9..2efbdc4a4 100644 --- a/spa/include/spa/utils/json.h +++ b/spa/include/spa/utils/json.h @@ -594,7 +594,7 @@ static inline int spa_json_parse_stringn(const char *val, int len, char *result, v < 0xdc00 || v > 0xdfff) continue; p += 6; - cp = 0x010000 | ((cp & 0x3ff) << 10) | (v & 0x3ff); + cp = 0x010000 + (((cp & 0x3ff) << 10) | (v & 0x3ff)); } else if (cp >= 0xdc00 && cp <= 0xdfff) continue; diff --git a/test/data/test-spa-json.txt b/test/data/test-spa-json.txt index 3297d9021a7b94f5e7d51d8c11e0a2f89ed0bb0a..078a34e5f18514d210cbbe97bd7650fc27fe3913 100644 GIT binary patch delta 1663 zcmZqJ!L;-Q(}FqmTp<~$3TgQ{Ir-(8dFcuzsl_G53W-Ij3hAkNsYQt;sVNFcl?nls zB^mj7Itqz-DPScErFogj`6;Oisl~~O1*u#qsmb{%ApL2jMI{-jMOIu~nYjh|MI{PZ z#UOq81t7EXi*yvyO7oIS^7C_wxyp(aY!&LG4Hax`6tWc3@{1I*6f*M^iW2kEQ#H(V z6pRctV?m0vZ55(5AgVMKY7`7A($dn>2&jkKqF0ofQktBq0ds&}eo?%R0>rp%g|z(o zB86;(ty!9yn&>85KwScIU>Qhhaeh%rYKlg2YKcZ!v8JXKmx6+VLP1exUWrDUl8udx zLS=k$Nl|8AdVF<8YK2CbX00A55MuJGL6lxfX>LKWMsh}xMwzB&ZEQ@Qt*tFKIUR-6 zyyDWL)cC~Wv-E-o$knP25JNyp(vTcth%n_L!W1I|B+r02 z&=7xwFvS?z6c7ih-{9c_ z;y{(Whnk`W2^U1bq*xdj#FVBa!-MC;1gL2sr63dF#-&&or^S?}AcE<`e1xf>pg}g( z1kKb12vd#FOf^R{bv?pVP-r3&e2PU9n$rCUrJztnc0e+!13oq&9AJXxfHYK7KlUR` z1w{ms11!-T@Da%Ypa?;7fF+s(J|Q{40@VSQXb$*<