diff options
Diffstat (limited to 'development/chicken/patches/02_all_CVE-2013-2024.patch')
-rw-r--r-- | development/chicken/patches/02_all_CVE-2013-2024.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/development/chicken/patches/02_all_CVE-2013-2024.patch b/development/chicken/patches/02_all_CVE-2013-2024.patch new file mode 100644 index 0000000000..d57a4bce97 --- /dev/null +++ b/development/chicken/patches/02_all_CVE-2013-2024.patch @@ -0,0 +1,47 @@ +From http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=commit;h=58684f69572453acc6fed7326fa9df39be98760e +--- chicken-4.8.0.3/setup-api.scm ++++ chicken-4.8.0.3/setup-api.scm +@@ -239,7 +239,7 @@ + (cond ((string=? prg "csc") + (string-intersperse + (cons* +- (shellpath (find-program "csc")) ++ (find-program "csc") + "-feature" "compiling-extension" + (if (or (deployment-mode) + (and (feature? #:cross-chicken) +--- chicken-4.8.0.3/utils.scm ++++ chicken-4.8.0.3/utils.scm +@@ -59,20 +59,18 @@ + ;;; Quote string for shell + + (define (qs str #!optional (platform (build-platform))) +- (case platform +- ((mingw32) +- (string-append "\"" str "\"")) +- (else +- (if (zero? (string-length str)) +- "''" +- (string-concatenate +- (map (lambda (c) +- (if (or (char-whitespace? c) +- (memq c '(#\# #\" #\' #\` #\´ #\~ #\& #\% #\$ #\! #\* #\; +- #\< #\> #\\ #\( #\) #\[ #\] #\{ #\} #\?))) +- (string #\\ c) +- (string c))) +- (string->list str))))))) ++ (let ((delim (if (eq? platform 'mingw32) #\" #\')) ++ (escaped (if (eq? platform 'mingw32) "\"\"" "'\\''"))) ++ (string-append ++ (string delim) ++ (string-concatenate ++ (map (lambda (c) ++ (cond ++ ((char=? c delim) escaped) ++ ((char=? c #\nul) (error 'qs "NUL character can not be represented in shell string" str)) ++ (else (string c)))) ++ (string->list str))) ++ (string delim)))) + + + ;;; Compile and load file |