Summary
file unit treats slash and backslash as path separators even on systems where they aren't
Metadata
- Id: d7d9029d76ef592dafb7c1d94a7cae06338a1df3
- Trac id: 1008
- Type: defect
- Reporter: ckeen
- Owner:
- Cc:
- Status: closed
- Component: core libraries
- Estimated difficulty:
- Resolution: fixed
- Priority: major
- Milestone: someday
- Version: 4.8.x
- Changetime: 2016-02-20 13:16:39 UTC
- Created: 2013-04-17 22:21:28 UTC
- Keywords: files unit dir separators all suck even on windows
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.