bug-autogen
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]