On 30 October 2015 at 18:48, <[email protected]> wrote:
> I am unable to successfully run "install-info --debug tar.info dir".
> The output I get is as follows:
>
> debug: reading dir file dir
> debug: reading input file tar.info
> Abort trap: 6
>
> and the "dir" file is not properly updated.
Thanks for the detailed testing and report. I tried downloading the
info file and running install-info and it worked fine for me.
When I ran it through valgrind, I got the following:
=19388== Warning: invalid file descriptor -1 in syscall close()
==19388== Conditional jump or move depends on uninitialised value(s)
==19388== at 0x804C925: add_missing_basenames (install-info.c:1686)
==19388== by 0x407C7A2: (below main) (in /lib/libc-2.17.so)
That's two errors, maybe one of them is responsible?
This log doesn''t say where the call to close was, but it's likely here:
static void
ensure_dirfile_exists (char *dirfile)
{
int desc;
if (chicken_flag)
return;
desc = open (dirfile, O_RDONLY);
if (desc < 0 && errno == ENOENT)
{
FILE *f;
char *readerr = strerror (errno);
close (desc);
That would lead to a negative argument to close.
The dir file is still created, so that's probably not the fatal error.
I'll have to spend a bit more time looking at it to work out where the
value is supposed to be initialized.