[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-autogen] autogen -b basename bug
From: |
David Taylor |
Subject: |
[Bug-autogen] autogen -b basename bug |
Date: |
Wed, 19 Jul 2006 13:58:38 -0400 |
The following bug is present in autogen 5.8.4; I have not verified its
existence in the cvs trunk. My apologies if it is already known /
fixed.
Suppose I type:
autogen -L build_env -b bin/one-emul.mk build_env/one-emul.def
then I will see:
fserr 13: cannot create /one-emul.mk: Permission denied
AutoGen aborting on signal 11 (Segmentation fault) in state ABORTING
when autogen tries to create /one-emul.mk.
Yes, it tries to create the file in the root directory.
The bug is in openOutFile (in tpProcess.c) -- the memcpy copies from
the last / onwards. Ooops. I believe that a proper fix is to either
replace:
if (pS == NULL)
pS = pzDefFile;
with
if (pS == NULL)
pS = pzDefFile;
else
pS++;
and document that if you provide a base name, then everything up to
and including the final slash will be stripped. Or *BETTER*, not
change the documentation and instead replace:
if (pE != NULL) {
memcpy( z, pS, pE - pS );
z[ pE - pS ] = NUL;
pS = z;
}
with
if (pE != NULL) {
memcpy( z, pzDefFile, pE - pzDefFile );
z[ pE - pzDefFile ] = NUL;
pS = z;
} else
pS = pzDefFile;
Take care,
David
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-autogen] autogen -b basename bug,
David Taylor <=