public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:14 [gentoo-dev] escaping variables in sed expressions Marijn Schouten (hkBst)
@ 2008-04-15 11:05 ` Santiago M. Mola
  2008-04-15 11:14   ` Fabian Groffen
  2008-04-15 14:17   ` Frank Gruellich
  2008-04-15 11:29 ` [gentoo-dev] " David Leverton
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 19+ messages in thread
From: Santiago M. Mola @ 2008-04-15 11:05 UTC (permalink / raw
  To: gentoo-dev

On Tue, Apr 15, 2008 at 1:14 PM, Marijn Schouten (hkBst)
<hkBst@gentoo.org> wrote:
>
>  Hi list,
>
>  it seems I have been using some fragile sed expression and I'd like to tap
> the collective
>  wisdom for avoiding doing that in the future.
>
>  dev-scheme/slib-3.1.5-r1 currently does
>
>  sed "s_prefix = /usr/local/_prefix = ${D}/usr/_" -i Makefile
>
>  to make it not violate the sandbox. However a user had set
>  PORTAGE_TMPDIR=/home/gentoo_overflow/tmp causing the sed expression to
> contain too may
>  underscores and failing.[1]
>
>  There are several option to handle this. I could use a less common
> delimiter or I could
>  escape it: ${D//_/\_} instead of ${D}. I could use a sed expression that
> doesn't suffer
>  from this problem (thanks to dleverton):
>
>  sed -ne '\_^prefix = /usr/local_!{p;d}' -e "iprefix = ${D}" -i Makefile
>
>  Comments?
>

Currently is use ':' as sed delimiter when paths are involved. I'd
also like to hear from you about proper delimiters if you think ':' is
not safe enough.

AFAIK, the only corner case which would make this fail would be
Windows paths (C:/gentoo-prefix).

Regards,

-- 
Santiago M. Mola
Jabber ID: cooldwind@gmail.com
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:05 ` Santiago M. Mola
@ 2008-04-15 11:14   ` Fabian Groffen
  2008-04-15 14:17   ` Frank Gruellich
  1 sibling, 0 replies; 19+ messages in thread
From: Fabian Groffen @ 2008-04-15 11:14 UTC (permalink / raw
  To: gentoo-dev

On 15-04-2008 13:05:26 +0200, Santiago M. Mola wrote:
> On Tue, Apr 15, 2008 at 1:14 PM, Marijn Schouten (hkBst)
> <hkBst@gentoo.org> wrote:
> >
> >  Hi list,
> >
> >  it seems I have been using some fragile sed expression and I'd like to tap
> > the collective
> >  wisdom for avoiding doing that in the future.
> >
> >  dev-scheme/slib-3.1.5-r1 currently does
> >
> >  sed "s_prefix = /usr/local/_prefix = ${D}/usr/_" -i Makefile
> >
> >  to make it not violate the sandbox. However a user had set
> >  PORTAGE_TMPDIR=/home/gentoo_overflow/tmp causing the sed expression to
> > contain too may
> >  underscores and failing.[1]
> >
> >  There are several option to handle this. I could use a less common
> > delimiter or I could
> >  escape it: ${D//_/\_} instead of ${D}. I could use a sed expression that
> > doesn't suffer
> >  from this problem (thanks to dleverton):
> >
> >  sed -ne '\_^prefix = /usr/local_!{p;d}' -e "iprefix = ${D}" -i Makefile
> >
> >  Comments?
> >
> 
> Currently is use ':' as sed delimiter when paths are involved. I'd
> also like to hear from you about proper delimiters if you think ':' is
> not safe enough.

I met one case where : was indeed a problem, but that was in
CFLAGS/LDFLAGS replacements.  Some linkers accept (and do require)
arguments that are like "-mg:2512s".

> AFAIK, the only corner case which would make this fail would be
> Windows paths (C:/gentoo-prefix).

C:\ iirc, but Cygwin seems to map this as /cygdrive/C, Interix as
/dev/fs/C, command prompt I have no clue how portage could ever normally
work there.  SpikeSource's SpikeWAMP uses Cygwin underneath, so
Portage/ebuilds will see the mapped paths only, never heard of any
problems from them regarding this either.


-- 
Fabian Groffen
Gentoo on a different level
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev] escaping variables in sed expressions
@ 2008-04-15 11:14 Marijn Schouten (hkBst)
  2008-04-15 11:05 ` Santiago M. Mola
                   ` (4 more replies)
  0 siblings, 5 replies; 19+ messages in thread
From: Marijn Schouten (hkBst) @ 2008-04-15 11:14 UTC (permalink / raw
  To: gentoo-dev@lists.gentoo.org

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi list,

it seems I have been using some fragile sed expression and I'd like to tap the collective
wisdom for avoiding doing that in the future.

dev-scheme/slib-3.1.5-r1 currently does

sed "s_prefix = /usr/local/_prefix = ${D}/usr/_" -i Makefile

to make it not violate the sandbox. However a user had set
PORTAGE_TMPDIR=/home/gentoo_overflow/tmp causing the sed expression to contain too may
underscores and failing.[1]

There are several option to handle this. I could use a less common delimiter or I could
escape it: ${D//_/\_} instead of ${D}. I could use a sed expression that doesn't suffer
from this problem (thanks to dleverton):

sed -ne '\_^prefix = /usr/local_!{p;d}' -e "iprefix = ${D}" -i Makefile

Comments?

Marijn

[1]: http://bugs.gentoo.org/show_bug.cgi?id=217735

- --
Marijn Schouten (hkBst), Gentoo Lisp project, Gentoo ML
<http://www.gentoo.org/proj/en/lisp/>, #gentoo-{lisp,ml} on FreeNode
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgEjjEACgkQp/VmCx0OL2zGDQCcCcgx1/g/UXpB38HIjKjNhmL6
S4MAoK1aXJS6SW9FaZT4i2iaeo6AlD2u
=Id31
-----END PGP SIGNATURE-----
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:14 [gentoo-dev] escaping variables in sed expressions Marijn Schouten (hkBst)
  2008-04-15 11:05 ` Santiago M. Mola
@ 2008-04-15 11:29 ` David Leverton
  2008-04-15 13:10 ` Ulrich Mueller
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 19+ messages in thread
From: David Leverton @ 2008-04-15 11:29 UTC (permalink / raw
  To: gentoo-dev

On Tuesday 15 April 2008 12:14:57 Marijn Schouten (hkBst) wrote:
> There are several option to handle this. I could use a less common
> delimiter or I could escape it: ${D//_/\_} instead of ${D}. I could use a
> sed expression that doesn't suffer from this problem (thanks to dleverton):
>
> sed -ne '\_^prefix = /usr/local_!{p;d}' -e "iprefix = ${D}" -i Makefile

Just to clarify, I didn't think of escaping when I suggested this.  Escaping 
is probably cleaner, and certainly easier to understand.
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:14 [gentoo-dev] escaping variables in sed expressions Marijn Schouten (hkBst)
  2008-04-15 11:05 ` Santiago M. Mola
  2008-04-15 11:29 ` [gentoo-dev] " David Leverton
@ 2008-04-15 13:10 ` Ulrich Mueller
  2008-04-15 14:52 ` Petteri Räty
  2008-04-15 15:35 ` Mike Frysinger
  4 siblings, 0 replies; 19+ messages in thread
From: Ulrich Mueller @ 2008-04-15 13:10 UTC (permalink / raw
  To: gentoo-dev

>>>>> On Tue, 15 Apr 2008, Marijn Schouten (hkBst) wrote:

> There are several option to handle this. I could use a less common
> delimiter or I could escape it: ${D//_/\_} instead of ${D}. I could
> use a sed expression that doesn't suffer from this problem (thanks
> to dleverton):

> sed -ne '\_^prefix = /usr/local_!{p;d}' -e "iprefix = ${D}" -i Makefile

Hi Marijn,

both approaches won't work since you would have to escape not only the
pattern delimiter, but also sed special characters (like "\" and "&")
_and_ make special characters (e.g. the dollar sign).

Probably better to pass it to make via a command argument or
environment variable.

Ulrich
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:05 ` Santiago M. Mola
  2008-04-15 11:14   ` Fabian Groffen
@ 2008-04-15 14:17   ` Frank Gruellich
  2008-04-15 15:16     ` Marius Mauch
  1 sibling, 1 reply; 19+ messages in thread
From: Frank Gruellich @ 2008-04-15 14:17 UTC (permalink / raw
  To: gentoo-dev

* Santiago M. Mola <coldwind@gentoo.org> 15. Apr 08:
> On Tue, Apr 15, 2008 at 1:14 PM, Marijn Schouten (hkBst)
> Currently is use ':' as sed delimiter when paths are involved. I'd
> also like to hear from you about proper delimiters if you think ':' is
> not safe enough.
> 
> AFAIK, the only corner case which would make this fail would be
> Windows paths (C:/gentoo-prefix).

Even though it's probably stupid to use it, but ':' is a valid character
within a path.  I've no solution for this problem, however.

Kind regards,
 Frank.
-- 
Sigmentation fault
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:14 [gentoo-dev] escaping variables in sed expressions Marijn Schouten (hkBst)
                   ` (2 preceding siblings ...)
  2008-04-15 13:10 ` Ulrich Mueller
@ 2008-04-15 14:52 ` Petteri Räty
  2008-04-15 15:29   ` Marijn Schouten (hkBst)
  2008-04-15 15:35 ` Mike Frysinger
  4 siblings, 1 reply; 19+ messages in thread
From: Petteri Räty @ 2008-04-15 14:52 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]

Marijn Schouten (hkBst) kirjoitti:
> Hi list,
> 
> it seems I have been using some fragile sed expression and I'd like to 
> tap the collective
> wisdom for avoiding doing that in the future.
> 
> dev-scheme/slib-3.1.5-r1 currently does
> 
> sed "s_prefix = /usr/local/_prefix = ${D}/usr/_" -i Makefile
> 
> to make it not violate the sandbox. However a user had set
> PORTAGE_TMPDIR=/home/gentoo_overflow/tmp causing the sed expression to 
> contain too may
> underscores and failing.[1]
> 
> There are several option to handle this. I could use a less common 
> delimiter or I could
> escape it: ${D//_/\_} instead of ${D}. I could use a sed expression that 
> doesn't suffer
> from this problem (thanks to dleverton):
> 
> sed -ne '\_^prefix = /usr/local_!{p;d}' -e "iprefix = ${D}" -i Makefile
> 
> Comments?
> 
> Marijn
> 
> [1]: http://bugs.gentoo.org/show_bug.cgi?id=217735
> 

You should just fix the Makefile to respect DESTDIR and send the patch 
upstream.

Regards,
Petteri


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 14:17   ` Frank Gruellich
@ 2008-04-15 15:16     ` Marius Mauch
  2008-04-16 17:17       ` Frank Gruellich
  0 siblings, 1 reply; 19+ messages in thread
From: Marius Mauch @ 2008-04-15 15:16 UTC (permalink / raw
  To: gentoo-dev

On Tue, 15 Apr 2008 16:17:54 +0200
Frank Gruellich <frank@der-frank.org> wrote:

> * Santiago M. Mola <coldwind@gentoo.org> 15. Apr 08:
> > On Tue, Apr 15, 2008 at 1:14 PM, Marijn Schouten (hkBst)
> > Currently is use ':' as sed delimiter when paths are involved. I'd
> > also like to hear from you about proper delimiters if you think ':'
> > is not safe enough.
> > 
> > AFAIK, the only corner case which would make this fail would be
> > Windows paths (C:/gentoo-prefix).
> 
> Even though it's probably stupid to use it, but ':' is a valid
> character within a path.  I've no solution for this problem, however.

Valid maybe (but then pretty much every character is valid), but colon
is used as path delimiter in many other contexts (e.g. $PATH) so it's
rather unlikely to be used.

Marius
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 14:52 ` Petteri Räty
@ 2008-04-15 15:29   ` Marijn Schouten (hkBst)
  0 siblings, 0 replies; 19+ messages in thread
From: Marijn Schouten (hkBst) @ 2008-04-15 15:29 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Petteri Räty wrote:
| You should just fix the Makefile to respect DESTDIR and send the patch
| upstream.

You're right of course, but that is only the right way for this specific instance and not
a general way of handling tricky sed expressions.

Marijn

- --
Marijn Schouten (hkBst), Gentoo Lisp project, Gentoo ML
<http://www.gentoo.org/proj/en/lisp/>, #gentoo-{lisp,ml} on FreeNode
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgEyckACgkQp/VmCx0OL2z7+QCdHx8n7Py3CQJy1tJMmYkyCmJW
yUgAoIVlu60bCfPJqC1iNIYc8AegKrCm
=1ItB
-----END PGP SIGNATURE-----
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 11:14 [gentoo-dev] escaping variables in sed expressions Marijn Schouten (hkBst)
                   ` (3 preceding siblings ...)
  2008-04-15 14:52 ` Petteri Räty
@ 2008-04-15 15:35 ` Mike Frysinger
  4 siblings, 0 replies; 19+ messages in thread
From: Mike Frysinger @ 2008-04-15 15:35 UTC (permalink / raw
  To: gentoo-dev; +Cc: Marijn Schouten (hkBst)

[-- Attachment #1: Type: text/plain, Size: 568 bytes --]

On Tuesday 15 April 2008, Marijn Schouten (hkBst) wrote:
> Hi list,
>
> it seems I have been using some fragile sed expression and I'd like to tap
> the collective wisdom for avoiding doing that in the future.
>
> dev-scheme/slib-3.1.5-r1 currently does
>
> sed "s_prefix = /usr/local/_prefix = ${D}/usr/_" -i Makefile

ignoring the escape character (which is currently standardized in the tree as 
a colon), expressions like this are inherently fragile due to makefile 
changes.  i tend to do:
sed -i '/^prefix[[:space:]]*=/s:=.*:=/usr' Makefile
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-15 15:16     ` Marius Mauch
@ 2008-04-16 17:17       ` Frank Gruellich
  2008-04-16 17:24         ` Ciaran McCreesh
  0 siblings, 1 reply; 19+ messages in thread
From: Frank Gruellich @ 2008-04-16 17:17 UTC (permalink / raw
  To: gentoo-dev

* Marius Mauch <genone@gentoo.org> 15. Apr 08:
> On Tue, 15 Apr 2008 16:17:54 +0200
> Frank Gruellich <frank@der-frank.org> wrote:
> > * Santiago M. Mola <coldwind@gentoo.org> 15. Apr 08:
> > > On Tue, Apr 15, 2008 at 1:14 PM, Marijn Schouten (hkBst)
> > > Currently is use ':' as sed delimiter when paths are involved. I'd
> > > also like to hear from you about proper delimiters if you think ':'
> > > is not safe enough.
> > Even though it's probably stupid to use it, but ':' is a valid
> > character within a path.  I've no solution for this problem, however.
> Valid maybe (but then pretty much every character is valid),

I've been a bigmouth so I couldn't sleep last night thinking about that
problem (which in fact happened to me sometimes).  The very last
character I'd expect in a path would be the NUL char (\x00).  I was not
able to create a filename or path containing it.  (Anyone else?)
Unfortunately that stupid sed does not work with \x00 as delimiter...

But because a path will not contain a \x00 you can replace all
"$delimiter_of_your_dreams" with a \x00 and later change it back to the
original without adding any new.

Looks like:

(0) frank@bane [~] % echo '/foo/bar/foo:baz/baz bar/laber_rabarber/' |tr '/' '\0' |sed 's/a/o/g' |tr '\0' '/'
/foo/bor/foo:boz/boz bor/lober_roborber/
(0) frank@bane [~] %

Moving that to OP's problem he could maybe use something like:

tr '/' '\0' <Makefile |sed "s_prefix = /usr/local/_prefix = ${D}/usr/_" |tr '\0' '/' >Makefile.new

This obviously introduces the problem that a Makefile contains more than
just paths and there could be a \x00 somewhere... but... well...

> but colon is used as path delimiter in many other contexts (e.g.
> $PATH) so it's rather unlikely to be used.

I'm *very* paranoid.  ;-)

Kind regards,
 Frank.
-- 
Sigmentation fault
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] escaping variables in sed expressions
  2008-04-16 17:17       ` Frank Gruellich
@ 2008-04-16 17:24         ` Ciaran McCreesh
  2008-04-17  4:31           ` [gentoo-dev] " Duncan
  2008-04-21 15:39           ` Steve Long
  0 siblings, 2 replies; 19+ messages in thread
From: Ciaran McCreesh @ 2008-04-16 17:24 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 516 bytes --]

On Wed, 16 Apr 2008 19:17:51 +0200
Frank Gruellich <frank@der-frank.org> wrote:
> I was not able to create a filename or path containing it.  (Anyone
> else?)

Unix file names can't contain / or null.

> Unfortunately that stupid sed does not work with \x00 as
> delimiter...

Nor do most Unix apps, since they tend to be written in C using all
those C library functions that work on null terminated strings.

Null introduces far more problems than it solves, character-wise...

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev]  Re: escaping variables in sed expressions
  2008-04-16 17:24         ` Ciaran McCreesh
@ 2008-04-17  4:31           ` Duncan
  2008-04-17  5:49             ` Rémi Cardona
                               ` (2 more replies)
  2008-04-21 15:39           ` Steve Long
  1 sibling, 3 replies; 19+ messages in thread
From: Duncan @ 2008-04-17  4:31 UTC (permalink / raw
  To: gentoo-dev

Ciaran McCreesh <ciaran.mccreesh@googlemail.com> posted
20080416182405.651698dd@snowcone, excerpted below, on  Wed, 16 Apr 2008
18:24:05 +0100:

> On Wed, 16 Apr 2008 19:17:51 +0200
> Frank Gruellich <frank@der-frank.org> wrote:
>> I was not able to create a filename or path containing it.  (Anyone
>> else?)
> 
> Unix file names can't contain / or null.

Feel free to correct me if I'm mistaken, but I believe I was reading 
somewhere and /thought/ it was this list...

While you are almost certainly correct on POSIX/Unix filenames and the 
shell won't accept / in a filename, IIRC (from reading) it's often 
possible for C programs to code a literal / in a filename, and possible 
for some filesystems (also written in C, generally) to accept it.  Thus, 
while POSIX/Unix standards don't allow it, in practice, it's sometimes 
possible, if rare.

This was an entirely new idea to me when I read it, but it sounded like 
just the sort of filesystem implementation detail one might overlook, so 
I remembered it, I /believe/ accurately.  Whatever your faults, you /do/ 
tend to be quite accurate on such things, so if you'd either confirm this 
or disabuse me of my misinformation, I'd definitely appreciate it.

If it's correct, it's certainly worth considering before one starts 
making absolutist assumptions and statements that could be wrong in some 
cases, particularly as such bad assumptions seem to often lead ultimately 
to security faults.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev]  Re: escaping variables in sed expressions
  2008-04-17  4:31           ` [gentoo-dev] " Duncan
@ 2008-04-17  5:49             ` Rémi Cardona
  2008-04-18  0:45               ` Duncan
  2008-04-17  9:51             ` Santiago M. Mola
  2008-04-17 10:40             ` Olivier Galibert
  2 siblings, 1 reply; 19+ messages in thread
From: Rémi Cardona @ 2008-04-17  5:49 UTC (permalink / raw
  To: gentoo-dev

Duncan a écrit :
> Whatever your faults, you /do/ 
> tend to be quite accurate on such things.

Wow, you've managed to turn a nice technical discussion (which is rare 
enough in recent history) into a let's-start-bashing-people thread.

You've lost all credibility in just one sentence... Pity.

> If it's correct, it's certainly worth considering before one starts 
> making absolutist assumptions and statements that could be wrong in some 
> cases, particularly as such bad assumptions seem to often lead ultimately 
> to security faults.

Well gee, thanks for "considering" Gentoo security, I feel so much 
better now.

Seriously though, please leave the condescending tone of your post at 
the door. This post of yours is seriously out of line (imho).

Thanks

Rémi
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] Re: escaping variables in sed expressions
  2008-04-17  4:31           ` [gentoo-dev] " Duncan
  2008-04-17  5:49             ` Rémi Cardona
@ 2008-04-17  9:51             ` Santiago M. Mola
  2008-04-18  1:05               ` Duncan
  2008-04-17 10:40             ` Olivier Galibert
  2 siblings, 1 reply; 19+ messages in thread
From: Santiago M. Mola @ 2008-04-17  9:51 UTC (permalink / raw
  To: gentoo-dev

On Thu, Apr 17, 2008 at 6:31 AM, Duncan <1i5t5.duncan@cox.net> wrote:
>
>  While you are almost certainly correct on POSIX/Unix filenames and the
>  shell won't accept / in a filename, IIRC (from reading) it's often
>  possible for C programs to code a literal / in a filename, and possible
>  for some filesystems (also written in C, generally) to accept it.  Thus,
>  while POSIX/Unix standards don't allow it, in practice, it's sometimes
>  possible, if rare.

If that's possible, we shouldn't support it anyway. If someone wants
to use /var/tmp/port\/age we'll just stab him, if someone releases a
tarball with such filenames we'll stab him, too.

-- 
Santiago M. Mola
Jabber ID: cooldwind@gmail.com
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev]  Re: escaping variables in sed expressions
  2008-04-17  4:31           ` [gentoo-dev] " Duncan
  2008-04-17  5:49             ` Rémi Cardona
  2008-04-17  9:51             ` Santiago M. Mola
@ 2008-04-17 10:40             ` Olivier Galibert
  2 siblings, 0 replies; 19+ messages in thread
From: Olivier Galibert @ 2008-04-17 10:40 UTC (permalink / raw
  To: gentoo-dev

On Thu, Apr 17, 2008 at 04:31:59AM +0000, Duncan wrote:
> Ciaran McCreesh <ciaran.mccreesh@googlemail.com> posted
> 20080416182405.651698dd@snowcone, excerpted below, on  Wed, 16 Apr 2008
> 18:24:05 +0100:
> 
> > On Wed, 16 Apr 2008 19:17:51 +0200
> > Frank Gruellich <frank@der-frank.org> wrote:
> >> I was not able to create a filename or path containing it.  (Anyone
> >> else?)
> > 
> > Unix file names can't contain / or null.
> 
> Feel free to correct me if I'm mistaken, but I believe I was reading 
> somewhere and /thought/ it was this list...
> 
> While you are almost certainly correct on POSIX/Unix filenames and the 
> shell won't accept / in a filename, IIRC (from reading) it's often 
> possible for C programs to code a literal / in a filename, and possible 
> for some filesystems (also written in C, generally) to accept it.  Thus, 
> while POSIX/Unix standards don't allow it, in practice, it's sometimes 
> possible, if rare.

You can't access or create a file with a visible '/' in it on linux
using filesystem access calls because the character is taken into
account at the vfs level, i.e. before it hits the filesystem.  That
doesn't preclude three things though:

- Some filesystems are supposed to allow it (hfs for instance).  Dunno
  what the filesystem driver does in that case, perhaps an encoding or a
  mapping.  FS-dependant in any case

- You can change the fs at the sector level and forcibly put a '/' in
  a filename there.  What happens then is also fs-dependant, in the
  usual "interesting things can happen when your filesystem is corrupt"
  way.

- You can have series of codes (such as c0 af) which can be
  interpreted by a permissive utf-8 decoder as an encoding of '/'.
  They're valid in a file name, but they're an incorrect utf8
  sequence.  That's a pure userspace issue though.

  OG.
-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev]  Re: escaping variables in sed expressions
  2008-04-17  5:49             ` Rémi Cardona
@ 2008-04-18  0:45               ` Duncan
  0 siblings, 0 replies; 19+ messages in thread
From: Duncan @ 2008-04-18  0:45 UTC (permalink / raw
  To: gentoo-dev

Rémi Cardona <remi@gentoo.org> posted 4806E4E3.3080909@gentoo.org,
excerpted below, on  Thu, 17 Apr 2008 07:49:23 +0200:

> Duncan a écrit :
>> Whatever your faults, you /do/
>> tend to be quite accurate on such things.
> 
> Wow, you've managed to turn a nice technical discussion (which is rare
> enough in recent history) into a let's-start-bashing-people thread.
> 
> You've lost all credibility in just one sentence... Pity.

Thanks, someone, for mailing me offlist about this.  I'm incredibly sorry 
it was apparently taken negatively, as I had an entirely different 
meaning in mind, but it obviously didn't come thru as I intended.

I'm not sure I can explain without inserting my foot even further into my 
mouth, but I'll try.  I was intending to acknowledge the potential wound 
but communicate my respect for the person and the technical expertise and 
appreciation for fineness of detail I've repeatedly seen him 
demonstrate.  Unfortunately, it seems I screwed up big time and that's 
not the way it came out; rather than respect, it seemed like dissing.

So I unconditionally apologize for screwing up.  Again, thanks for 
rightfully pointing that out, and thanks as well to the person that 
notified me and tried to help.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev]  Re: escaping variables in sed expressions
  2008-04-17  9:51             ` Santiago M. Mola
@ 2008-04-18  1:05               ` Duncan
  0 siblings, 0 replies; 19+ messages in thread
From: Duncan @ 2008-04-18  1:05 UTC (permalink / raw
  To: gentoo-dev

"Santiago M. Mola" <coldwind@gentoo.org> posted
3c32af40804170251w353a1329o26433de9256ecba9@mail.gmail.com, excerpted
below, on  Thu, 17 Apr 2008 11:51:32 +0200:

> If that's possible, we shouldn't support it anyway. If someone wants to
> use /var/tmp/port\/age we'll just stab him, if someone releases a
> tarball with such filenames we'll stab him, too.

Agreed.  It's not a question of Gentoo support I'm worried about, but of 
the absolute statement and someone coming across it and relying on it in 
a (possibly unrelated) context in which it perhaps isn't possible to rely 
on, to unknown negative consequences possibly including security issues.

Also, as it's in the upthread, just in case someone doesn't get the 
apology I just sent, let me again unconditionally apologize for the very 
big screwup I made of things above.  It didn't come out the way I 
intended at all, and I thank someone for rightfully pointing that out, 
and also the person who brought it to my attention offlist and allowing 
me to try to correct the problem -- tho I realize it's not something that 
really /can/ be entirely corrected.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev]  Re: escaping variables in sed expressions
  2008-04-16 17:24         ` Ciaran McCreesh
  2008-04-17  4:31           ` [gentoo-dev] " Duncan
@ 2008-04-21 15:39           ` Steve Long
  1 sibling, 0 replies; 19+ messages in thread
From: Steve Long @ 2008-04-21 15:39 UTC (permalink / raw
  To: gentoo-dev

Ciaran McCreesh wrote:

> Nor do most Unix apps, since they tend to be written in C using all
> those C library functions that work on null terminated strings.
> 
> Null introduces far more problems than it solves, character-wise...
> 
..but it's fine as a terminator, if you know what you're doing.


-- 
gentoo-dev@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2008-04-21 15:40 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-15 11:14 [gentoo-dev] escaping variables in sed expressions Marijn Schouten (hkBst)
2008-04-15 11:05 ` Santiago M. Mola
2008-04-15 11:14   ` Fabian Groffen
2008-04-15 14:17   ` Frank Gruellich
2008-04-15 15:16     ` Marius Mauch
2008-04-16 17:17       ` Frank Gruellich
2008-04-16 17:24         ` Ciaran McCreesh
2008-04-17  4:31           ` [gentoo-dev] " Duncan
2008-04-17  5:49             ` Rémi Cardona
2008-04-18  0:45               ` Duncan
2008-04-17  9:51             ` Santiago M. Mola
2008-04-18  1:05               ` Duncan
2008-04-17 10:40             ` Olivier Galibert
2008-04-21 15:39           ` Steve Long
2008-04-15 11:29 ` [gentoo-dev] " David Leverton
2008-04-15 13:10 ` Ulrich Mueller
2008-04-15 14:52 ` Petteri Räty
2008-04-15 15:29   ` Marijn Schouten (hkBst)
2008-04-15 15:35 ` Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox