From a94146b554134b4ef6727ec3f48de1268504b51b Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 9 May 2022 16:33:46 -0400 Subject: [PATCH] pins: Improve pin description checks Make sure whitespace isn't in the pin description. Also make sure an alias doesn't map to an invalid pin. Signed-off-by: Kevin O'Connor --- klippy/pins.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/klippy/pins.py b/klippy/pins.py index b0930333..35fc58a2 100644 --- a/klippy/pins.py +++ b/klippy/pins.py @@ -30,6 +30,8 @@ class PinResolver: if alias in self.aliases and self.aliases[alias] != pin: raise error("Alias %s mapped to %s - can't alias to %s" % ( alias, self.aliases[alias], pin)) + if [c for c in '^~!:' if c in pin] or ''.join(pin.split()) != pin: + raise error("Invalid pin alias '%s'\n" % (pin,)) if pin in self.aliases: pin = self.aliases[pin] self.aliases[alias] = pin @@ -79,7 +81,7 @@ class PrinterPins: chip_name, pin = [s.strip() for s in desc.split(':', 1)] if chip_name not in self.chips: raise error("Unknown pin chip name '%s'" % (chip_name,)) - if [c for c in '^~!: ' if c in pin]: + if [c for c in '^~!:' if c in pin] or ''.join(pin.split()) != pin: format = "" if can_pullup: format += "[^~] "