diff --git a/src/engine/engine_io.c b/src/engine/engine_io.c index 8a8e59b087..789e3dc63d 100644 --- a/src/engine/engine_io.c +++ b/src/engine/engine_io.c @@ -529,7 +529,11 @@ void mj_saveModel(const mjModel* m, const char* filename, void* buffer, int buff } if (fp) { - fclose(fp); + int write_error = ferror(fp); + int close_error = fclose(fp); + if (write_error || close_error) { + mju_warning("Error saving model to '%s': file may be incomplete or corrupt", filename); + } } } diff --git a/src/ui/ui_main.c b/src/ui/ui_main.c index ffc2fca24e..7ba9132539 100644 --- a/src/ui/ui_main.c +++ b/src/ui/ui_main.c @@ -1894,7 +1894,7 @@ static void shortcuthelp(mjrRect r, int modifier, int shortcut, } // combine - strcat(text, key); + strncat(text, key, sizeof(text) - strlen(text) - 1); // make rectangle for shortcut int g_textver = SCL(ui->spacing.textver, con);