Skip to content

Commit

Permalink
Added safety to all calls to eval.
Browse files Browse the repository at this point in the history
  • Loading branch information
samclane committed Nov 18, 2018
1 parent dab7737 commit 3f95fd5
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
7 changes: 4 additions & 3 deletions ui/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ def body(self, master):

# Widgets
# Starting minimized
self.start_mini = BooleanVar(master, value=eval(config["AppSettings"]["start_minimized"]))
self.start_mini = BooleanVar(master, value=eval(config["AppSettings"]["start_minimized"], {}))
self.start_mini_check = Checkbutton(master, variable=self.start_mini)

# Avg monitor color match
Expand Down Expand Up @@ -280,9 +280,10 @@ def get_color(self):

def register_keybinding(self, bulb: str, keys: str, color: str):
try:
color = eval(color) # should match color to variable w/ same name
color = eval(color, {c: eval(c) for c in self.root_window.framesdict[
self.keybind_bulb_selection.get()].default_colors}) # should match color to variable w/ same name
except NameError: # must be using a custom color
color = eval(config["PresetColors"][color])
color = eval(config["PresetColors"][color], {})
self.root_window.save_keybind(bulb, keys, color, bulb in self.root_window.groupsdict.keys())
config["Keybinds"][str(keys)] = str(bulb + ":" + str(color))
self.mlb.insert(END, (str(bulb), str(keys), str(color)))
Expand Down
6 changes: 2 additions & 4 deletions utilities/color_thread.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,15 @@
from lifxlan import utils

from ui.settings import config
from utilities.utils import get_primary_monitor;

get_primary_monitor()
from utilities.utils import get_primary_monitor


def avg_screen_color(initial_color):
monitor = config["AverageColor"]["DefaultMonitor"]
if monitor == "all":
im = getScreenAsImage()
else:
im = getRectAsImage(eval(monitor))
im = getRectAsImage(eval(monitor, {'get_primary_monitor': get_primary_monitor}))
color = im.resize((1, 1), Image.HAMMING).getpixel((0, 0))
color_hsbk = utils.RGBtoHSBK(color, temperature=initial_color[3])
# return tuple((val1+val2)/2 for (val1, val2) in zip(initial_color, color_hsbk))
Expand Down

0 comments on commit 3f95fd5

Please sign in to comment.