1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-27 22:08:02 +00:00

Fix macros that call macros crashing (#21383)

When macros call macros, the null termination should remain in place until the macro is completed, and only then put back. Otherwise, the macro handler interprets this as setting the macro called to a new value.
This commit is contained in:
mihtjel 2021-03-23 07:00:22 +01:00 committed by GitHub
parent 2b621eb45d
commit 50a6ffa952
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1048,8 +1048,8 @@ void GcodeSuite::process_subcommands_now(char * gcode) {
char * const delim = strchr(gcode, '\n'); // Get address of next newline char * const delim = strchr(gcode, '\n'); // Get address of next newline
if (delim) *delim = '\0'; // Replace with nul if (delim) *delim = '\0'; // Replace with nul
parser.parse(gcode); // Parse the current command parser.parse(gcode); // Parse the current command
if (delim) *delim = '\n'; // Put back the newline
process_parsed_command(true); // Process it process_parsed_command(true); // Process it
if (delim) *delim = '\n'; // Put back the newline
if (!delim) break; // Last command? if (!delim) break; // Last command?
gcode = delim + 1; // Get the next command gcode = delim + 1; // Get the next command
} }