--- hplip-2.7.7/base/g.py.cve-2008-2940 2008-08-13 11:56:32.000000000 -0400 +++ hplip-2.7.7/base/g.py 2008-08-13 11:59:14.000000000 -0400 @@ -139,6 +139,7 @@ class Config(dict): prop.sys_config_file = '/etc/hp/hplip.conf' prop.user_dir = os.path.expanduser('~/.hplip') prop.user_config_file = os.path.join(prop.user_dir, 'hplip.conf') +prop.alerts_config_file = '/etc/hp/alerts.conf' if (not prop.user_config_file.startswith ("/root/") and not os.getuid () == 0): @@ -159,6 +160,7 @@ if (not prop.user_config_file.startswith sys_cfg = Config(prop.sys_config_file, True) user_cfg = Config(prop.user_config_file) +alerts_cfg = Config(prop.alerts_config_file) # Language settings --- hplip-2.7.7/hpssd.py.cve-2008-2940 2008-08-13 11:56:32.000000000 -0400 +++ hplip-2.7.7/hpssd.py 2008-08-13 11:56:32.000000000 -0400 @@ -70,6 +70,12 @@ from prnt import cups # Per user alert settings alerts = {} +for user, cfg in alerts_cfg.iteritems (): + entry = {} + entry['email-alerts'] = utils.to_bool (cfg.get('email-alerts', 0)) + entry['email-from-address'] = cfg.get('email-from-address', '') + entry['email-to-addresses'] = cfg.get('email-to-addresses', '') + alerts[user] = entry # Fax fax_file = {} @@ -289,15 +295,10 @@ class hpssd_handler(dispatcher): self.out_buffer = buildResultMessage('QueryHistoryResult', payload, result_code) - # TODO: Need to load alerts at start-up def handle_setalerts(self): result_code = ERROR_SUCCESS - username = self.fields.get('username', '') - alerts[username] = {'email-alerts' : utils.to_bool(self.fields.get('email-alerts', '0')), - 'email-from-address' : self.fields.get('email-from-address', ''), - 'email-to-addresses' : self.fields.get('email-to-addresses', ''), - } + # Do nothing. We use the alerts table in /etc/hp/alerts.conf. self.out_buffer = buildResultMessage('SetAlertsResult', None, result_code) @@ -444,6 +445,9 @@ class hpssd_handler(dispatcher): event_type = self.fields.get('event-type', 'event') event_code = self.fields.get('event-code', 0) device_uri = self.fields.get('device-uri', '').replace('hpfax:', 'hp:') + result_code = self.__checkdevice(device_uri) + if result_code != ERROR_SUCCESS: + return log.debug("Device URI: %s" % device_uri) error_string_short = device.queryString(str(event_code), 0)