Summary

file unit treats slash and backslash as path separators even on systems where they aren't

Metadata

Description

The file unit treats #/ and #\\ as file separators, for example in make-pathname:

 CHICKEN
 (c) 2008-2013, The Chicken Team
 (c) 2000-2007, Felix L. Winkelmann
 Version 4.8.2 (rev e1e5193)
 openbsd-unix-gnu-x86 [ manyargs dload ptables ]
 compiled 2013-04-16 on necronomicon.my.domain (OpenBSD)
 
 #;1> (use files)
 ; loading /home/ckeen/chickens/master/lib/chicken/7/files.import.so ...
 ; loading library files ...
 #;2> (make-pathname "foo/bar" "\\")
 "foo/bar/"

In this example the totally valid unix file/directory name backslash "\" is stripped by make-pathname.

This begs the question of the file unit's purpose:

* should it use the current system's separator?
* should it use some other configurable separator?
* should it use the target's systems separator (cross-chickens)?
* all of the above depending on some API?

Changes and comments

[2016-02-20 13:16:39 UTC] sjamaan changed status from new to closed

[2016-02-20 13:16:39 UTC] sjamaan set resolution to fixed

[2016-02-20 13:16:39 UTC] sjamaan wrote:

This has been fixed when we discovered CVE-2015-8235 in Spiffy caused by this mishandling.