diff --git a/esp8266/moduos.c b/esp8266/moduos.c index 006fc49d61..a22fbd4df0 100644 --- a/esp8266/moduos.c +++ b/esp8266/moduos.c @@ -58,10 +58,9 @@ STATIC mp_obj_tuple_t os_uname_info_obj = { }; STATIC mp_obj_t os_uname(void) { - if (os_uname_info_obj.items[2] == NULL) { - const char *ver = system_get_sdk_version(); - os_uname_info_obj.items[2] = mp_obj_new_str(ver, strlen(ver), false); - } + // We must populate the "release" field each time in case it was GC'd since the last call. + const char *ver = system_get_sdk_version(); + os_uname_info_obj.items[2] = mp_obj_new_str(ver, strlen(ver), false); return (mp_obj_t)&os_uname_info_obj; } STATIC MP_DEFINE_CONST_FUN_OBJ_0(os_uname_obj, os_uname);