From 51cf796601da7d2fc65c8f9ad8d0fe0fa580dba2 Mon Sep 17 00:00:00 2001 From: James Troup Date: Fri, 1 Dec 2000 17:33:29 +0000 Subject: [PATCH] Fix checking for source files with +'s in them. --- TODO | 2 ++ katie | 6 +++--- utils.py | 11 ++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/TODO b/TODO index 7cf94090..a486b0f3 100644 --- a/TODO +++ b/TODO @@ -12,6 +12,8 @@ Show Stopper Non-Show Stopper ---------------- + o fix heimdal at some point on non-US. + o CD building scripts need fixing o charisma needs to do version compares diff --git a/katie b/katie index f8053fc9..5ecbb001 100755 --- a/katie +++ b/katie @@ -2,7 +2,7 @@ # Installs Debian packaes # Copyright (C) 2000 James Troup -# $Id: katie,v 1.6 2000-11-30 04:38:34 troup Exp $ +# $Id: katie,v 1.7 2000-12-01 17:33:29 troup Exp $ # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -444,7 +444,7 @@ def check_dsc (): actual_md5 = files[dsc_file]["md5sum"] found = "%s in incoming" % (dsc_file) # Check the file does not already exist in the archive - q = projectB.query("SELECT f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (dsc_file)); + q = projectB.query("SELECT f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (utils.regex_safe(dsc_file))); if q.getresult() != []: reject_message = reject_message + "Rejected: can not overwrite existing copy of '%s' already in the archive.\n" % (dsc_file) elif dsc_file[-12:] == ".orig.tar.gz": @@ -460,7 +460,7 @@ def check_dsc (): reprocess = 1; return 1; # Check in the pool - q = projectB.query("SELECT l.path, f.filename, l.type, f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (dsc_file)); + q = projectB.query("SELECT l.path, f.filename, l.type, f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (utils.regex_safe(dsc_file))); ql = q.getresult(); if len(ql) > 0: old_file = ql[0][0] + ql[0][1]; diff --git a/utils.py b/utils.py index ef86b5ad..409113ef 100644 --- a/utils.py +++ b/utils.py @@ -1,6 +1,6 @@ # Utility functions # Copyright (C) 2000 James Troup -# $Id: utils.py,v 1.5 2000-11-30 04:19:30 troup Exp $ +# $Id: utils.py,v 1.6 2000-12-01 17:33:29 troup Exp $ # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -256,3 +256,12 @@ def which_conf_file (): ###################################################################################### +# Escape characters which have meaning to SQL's regex comparison operator ('~') +# (woefully incomplete) + +def regex_safe (s): + s = string.replace(s, '+', '\\\\+'); + return s + +###################################################################################### + -- 2.39.2