| 292 | #define checksize(S,t) fchecksize(S,sizeof(t),#t) |
| 293 | |
| 294 | static void checkHeader(LoadState *S) { |
| 295 | checkliteral(S, LUA_SIGNATURE + 1, "not a"); /* 1st char already checked */ |
| 296 | if (LoadByte(S) != LUAC_VERSION) |
| 297 | error(S, "version mismatch in"); |
| 298 | if (LoadByte(S) != LUAC_FORMAT) |
| 299 | error(S, "format mismatch in"); |
| 300 | checkliteral(S, LUAC_DATA, "corrupted"); |
| 301 | checksize(S, int32_t); |
| 302 | checksize(S, LUA_SIZE_T_TYPE); |
| 303 | checksize(S, Instruction); |
| 304 | checksize(S, lua_Integer); |
| 305 | checksize(S, lua_Number); |
| 306 | if (LoadInteger(S) != LUAC_INT) |
| 307 | error(S, "endianness mismatch in"); |
| 308 | if (LoadNumber(S) != LUAC_NUM) |
| 309 | error(S, "float format mismatch in"); |
| 310 | } |
| 311 | |
| 312 | |
| 313 | /* |
no test coverage detected