From 023a985bfc8a627b1e4ccff797fbc33e3d064d6c Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 14 Jan 2021 22:13:50 -0500 Subject: gcode_macro: Use deepcopy() on get_status() results If a get_status() method returns a mutable object (such as a list or dict) then it would be possible for a gcode command template to incorrectly alter the program's internal state. Perform a deepcopy() operation on all get_status() return results to avoid that. Signed-off-by: Kevin O'Connor --- klippy/extras/heaters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'klippy/extras/heaters.py') diff --git a/klippy/extras/heaters.py b/klippy/extras/heaters.py index 829e9759..92d56db9 100644 --- a/klippy/extras/heaters.py +++ b/klippy/extras/heaters.py @@ -284,8 +284,8 @@ class PrinterHeaters: "G-Code sensor id %s already registered" % (gcode_id,)) self.gcode_id_to_sensor[gcode_id] = psensor def get_status(self, eventtime): - return {'available_heaters': list(self.available_heaters), - 'available_sensors': list(self.available_sensors)} + return {'available_heaters': self.available_heaters, + 'available_sensors': self.available_sensors} def turn_off_all_heaters(self, print_time=0.): for heater in self.heaters.values(): heater.set_temp(0.) -- cgit v1.2.3-70-g09d2