Skip to content

Commit a620188

Browse files
committed
Sanitize system_architecture fallback, and fallback to unknown
Signed-off-by: Peter M <petermm@gmail.com>
1 parent fbc5713 commit a620188

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

src/libAtomVM/CMakeLists.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,24 @@ if (NOT DEFINED AVM_SYSTEM_ARCHITECTURE_STRING)
314314
set(AVM_SYSTEM_ARCHITECTURE_STRING "")
315315
endif()
316316

317+
set(AVM_SYSTEM_NAME_SANITIZED "${CMAKE_SYSTEM_NAME}")
318+
if (AVM_SYSTEM_NAME_SANITIZED STREQUAL "")
319+
set(AVM_SYSTEM_NAME_SANITIZED "unknown")
320+
endif()
321+
string(REPLACE "-" "_" AVM_SYSTEM_NAME_SANITIZED "${AVM_SYSTEM_NAME_SANITIZED}")
322+
323+
set(AVM_SYSTEM_VERSION_SANITIZED "${CMAKE_SYSTEM_VERSION}")
324+
if (AVM_SYSTEM_VERSION_SANITIZED STREQUAL "")
325+
set(AVM_SYSTEM_VERSION_SANITIZED "unknown")
326+
endif()
327+
string(REPLACE "-" "_" AVM_SYSTEM_VERSION_SANITIZED "${AVM_SYSTEM_VERSION_SANITIZED}")
328+
329+
set(AVM_SYSTEM_ARCHITECTURE_SANITIZED "${CMAKE_SYSTEM_PROCESSOR}")
330+
if (AVM_SYSTEM_ARCHITECTURE_SANITIZED STREQUAL "")
331+
set(AVM_SYSTEM_ARCHITECTURE_SANITIZED "unknown")
332+
endif()
333+
string(REPLACE "-" "_" AVM_SYSTEM_ARCHITECTURE_SANITIZED "${AVM_SYSTEM_ARCHITECTURE_SANITIZED}")
334+
317335
# Add include to directory where avm_version.h is generated so targets linking
318336
# libAtomVM can access it
319337
target_include_directories(libAtomVM PUBLIC ${CMAKE_CURRENT_BINARY_DIR})

src/libAtomVM/nifs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3077,7 +3077,7 @@ static term nif_erlang_system_info(Context *ctx, int argc, term argv[])
30773077
if (SYSTEM_ARCHITECTURE_STRING[0] != '\0') {
30783078
snprintf(buf, 128, "%s", SYSTEM_ARCHITECTURE_STRING);
30793079
} else {
3080-
snprintf(buf, 128, "%s-%s-%s", SYSTEM_NAME, SYSTEM_VERSION, SYSTEM_ARCHITECTURE);
3080+
snprintf(buf, 128, "%s-%s-%s", SYSTEM_NAME_SANITIZED, SYSTEM_VERSION_SANITIZED, SYSTEM_ARCHITECTURE_SANITIZED);
30813081
}
30823082
size_t len = strnlen(buf, 128);
30833083
if (memory_ensure_free_opt(ctx, term_binary_heap_size(len), MEMORY_CAN_SHRINK) != MEMORY_GC_OK) {

src/libAtomVM/version.h.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,8 @@
2121
#define SYSTEM_NAME "${CMAKE_SYSTEM_NAME}"
2222
#define SYSTEM_VERSION "${CMAKE_SYSTEM_VERSION}"
2323
#define SYSTEM_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}"
24+
#define SYSTEM_NAME_SANITIZED "${AVM_SYSTEM_NAME_SANITIZED}"
25+
#define SYSTEM_VERSION_SANITIZED "${AVM_SYSTEM_VERSION_SANITIZED}"
26+
#define SYSTEM_ARCHITECTURE_SANITIZED "${AVM_SYSTEM_ARCHITECTURE_SANITIZED}"
2427
#define SYSTEM_ARCHITECTURE_STRING "${AVM_SYSTEM_ARCHITECTURE_STRING}"
2528
#define ATOMVM_VERSION "${ATOMVM_VERSION}"

0 commit comments

Comments
 (0)