I found out that in function Rivet_Upload the list of subcommands had 2
entries for 'tempname". In case a 'upload names' command had to be processed
Tcl_GetIndexfromObject mismatches the entry for the 'names' subcommand with
its numerical counterpart. This causes the child process to segfault because
Rivet_Upload tries to get one more argument whereas there is none.
The bug surfaced when I reviewed more closely the output of the failing tests.
i'm going to commit right away.
-- Massimo
Index: src/apache-2/rivetCore.c
===================================================================
--- src/apache-2/rivetCore.c (revision 832481)
+++ src/apache-2/rivetCore.c (working copy)
@@ -836,7 +836,6 @@
"filename",
"tempname",
"names",
- "tempname",
NULL
};
@@ -848,8 +847,8 @@
SIZE,
TYPE,
FILENAME,
- NAMES,
- TEMPNAME
+ TEMPNAME,
+ NAMES
};
rivet_interp_globals *globals = Tcl_GetAssocData(interp, "rivet", NULL);
@@ -863,7 +862,8 @@
/* If it's any of these, we need to find a specific name. */
- /* Excluded cases are EXISTS and NAMES. */
+ /* Excluded case is NAMES. */
+
if ((enum subcommand)subcommandindex == CHANNEL ||
(enum subcommand)subcommandindex == SAVE ||
(enum subcommand)subcommandindex == DATA ||
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]