@@ -1417,12 +1417,39 @@ wasm_runtime_load_ex(uint8 *buf, uint32 size, const LoadArgs *args,
1417
1417
char * error_buf , uint32 error_buf_size )
1418
1418
{
1419
1419
WASMModuleCommon * module_common = NULL ;
1420
+ uint32 package_type ;
1421
+ bool magic_header_detected = false;
1420
1422
1421
1423
if (!args ) {
1424
+ set_error_buf (error_buf , error_buf_size ,
1425
+ "WASM module load failed: null load arguments" );
1426
+ return NULL ;
1427
+ }
1428
+
1429
+ if (size < 4 ) {
1430
+ set_error_buf (error_buf , error_buf_size ,
1431
+ "WASM module load failed: unexpected end" );
1432
+ return NULL ;
1433
+ }
1434
+
1435
+ package_type = get_package_type (buf , size );
1436
+ if (package_type == Wasm_Module_Bytecode ) {
1437
+ #if WASM_ENABLE_INTERP != 0
1438
+ magic_header_detected = true;
1439
+ #endif
1440
+ }
1441
+ else if (package_type == Wasm_Module_AoT ) {
1442
+ #if WASM_ENABLE_AOT != 0
1443
+ magic_header_detected = true;
1444
+ #endif
1445
+ }
1446
+ if (!magic_header_detected ) {
1447
+ set_error_buf (error_buf , error_buf_size ,
1448
+ "WASM module load failed: magic header not detected" );
1422
1449
return NULL ;
1423
1450
}
1424
1451
1425
- if (get_package_type ( buf , size ) == Wasm_Module_Bytecode ) {
1452
+ if (package_type == Wasm_Module_Bytecode ) {
1426
1453
#if WASM_ENABLE_INTERP != 0
1427
1454
module_common =
1428
1455
(WASMModuleCommon * )wasm_load (buf , size ,
@@ -1435,7 +1462,7 @@ wasm_runtime_load_ex(uint8 *buf, uint32 size, const LoadArgs *args,
1435
1462
args -> wasm_binary_freeable ;
1436
1463
#endif
1437
1464
}
1438
- else if (get_package_type ( buf , size ) == Wasm_Module_AoT ) {
1465
+ else if (package_type == Wasm_Module_AoT ) {
1439
1466
#if WASM_ENABLE_AOT != 0
1440
1467
module_common = (WASMModuleCommon * )aot_load_from_aot_file (
1441
1468
buf , size , args , error_buf , error_buf_size );
@@ -1444,15 +1471,7 @@ wasm_runtime_load_ex(uint8 *buf, uint32 size, const LoadArgs *args,
1444
1471
args -> wasm_binary_freeable ;
1445
1472
#endif
1446
1473
}
1447
- else {
1448
- if (size < 4 )
1449
- set_error_buf (error_buf , error_buf_size ,
1450
- "WASM module load failed: unexpected end" );
1451
- else
1452
- set_error_buf (error_buf , error_buf_size ,
1453
- "WASM module load failed: magic header not detected" );
1454
- return NULL ;
1455
- }
1474
+
1456
1475
if (!module_common ) {
1457
1476
LOG_DEBUG ("WASM module load failed" );
1458
1477
return NULL ;
0 commit comments