From: SourceForge.net <no...@so...> - 2004-09-03 08:50:31
|
Bugs item #1020538, was opened at 2004-09-01 17:39 Message generated for change (Comment added) made by dkf You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=1020538&group_id=10894 Category: 24. Channel Commands Group: current: 8.5a1 Status: Open Resolution: None Priority: 9 Submitted By: Franco Violi (effevi) Assigned to: Vince Darley (vincentdarley) Summary: Problem in file copy Initial Comment: On tcl version 8.5.a1, under Linux, I got the following problem In this situation (this is the ls -l command on the two files) -r--r--r-- 1 prjadmin metodo 0 set 1 18:23 /tmp/one -rw-rw-r-- 1 piera metodo 0 set 1 18:23 /tmp/two This script file copy -force /tmp/one /tmp/two gets into "Segmentation fault (core dumped)" if the command is issued with my user uid=2000(effevi) gid=500(metodo) gruppi=500 (metodo),30000(programmatori),2000(effevi) This is the version of my compiler gcc (GCC) 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It seems that, while trying to setting owner and group (for user effevi it is not possibile) the call gets in fault. ---------------------------------------------------------------------- >Comment By: Donal K. Fellows (dkf) Date: 2004-09-03 09:50 Message: Logged In: YES user_id=79902 Further analysis indicates that the problem is not present on the 8.4 branch because there is no attempt to adjust permissions, so at least there isn't a backport problem... :^) ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2004-09-03 09:47 Message: Logged In: YES user_id=79902 Yuck. The problem is that the call to Tcl_FSFileAttrsSet() in CopyRenameOneFile() (in tclFCmd.c) passes in a NULL interp, but an error happened and we're trying to store the error message in a variable looked up from that NULL... Suggested fix: make SetPermissionsAttribute() in tclUnixFCmd.c only report an error when interp is non-NULL. For safety, we need to protect all three points that can generate error messages, probably with: if (interp != NULL) { Tcl_AppendResult(...); } Do you concur with my analysis, Vince? I'm assigning back to you because 'cvs annotate' says you've poked around in relevant areas in both files... ---------------------------------------------------------------------- Comment By: Vince Darley (vincentdarley) Date: 2004-09-03 09:15 Message: Logged In: YES user_id=32170 Well, the crash seems to be in some "Var" handling code, so I'm reassigning to a different area. ---------------------------------------------------------------------- Comment By: Franco Violi (effevi) Date: 2004-09-03 08:06 Message: Logged In: YES user_id=102771 It was already compiled with symbols. This is the stack. Program received signal SIGSEGV, Segmentation fault. 0x400a4e42 in TclLookupSimpleVar () from /opt/Tng/lib/libtcl8.5.so #0 0x400a4e42 in TclLookupSimpleVar () from /opt/Tng/lib/libtcl8.5.so #1 0x400a48d3 in TclLookupVar () from /opt/Tng/lib/libtcl8.5.so #2 0x400a5799 in Tcl_SetVar2Ex () from /opt/Tng/lib/libtcl8.5.so #3 0x400a571e in Tcl_SetVar2 () from /opt/Tng/lib/libtcl8.5.so #4 0x40099d85 in Tcl_SetErrorCodeVA () from /opt/Tng/lib/libtcl8.5.so #5 0x40099dd0 in Tcl_SetErrorCode () from /opt/Tng/lib/libtcl8.5.so #6 0x4007ef72 in Tcl_PosixError () from /opt/Tng/lib/libtcl8.5.so #7 0x400ac81d in SetPermissionsAttribute () from /opt/Tng/lib/libtcl8.5.so #8 0x4007f53b in NativeFileAttrsSet () from /opt/Tng/lib/libtcl8.5.so #9 0x4007f62a in Tcl_FSFileAttrsSet () from /opt/Tng/lib/libtcl8.5.so #10 0x4006c8ce in CopyRenameOneFile () from /opt/Tng/lib/libtcl8.5.so #11 0x4006bbda in FileCopyRename () from /opt/Tng/lib/libtcl8.5.so #12 0x4006ba88 in TclFileCopyCmd () from /opt/Tng/lib/libtcl8.5.so #13 0x40040417 in Tcl_FileObjCmd () from /opt/Tng/lib/libtcl8.5.so #14 0x4003a9ae in TclEvalObjvInternal () from /opt/Tng/lib/libtcl8.5.so #15 0x4003b255 in Tcl_EvalEx () from /opt/Tng/lib/libtcl8.5.so #16 0x4007ed44 in Tcl_FSEvalFileEx () from /opt/Tng/lib/libtcl8.5.so #17 0x40084b23 in Tcl_Main () from /opt/Tng/lib/libtcl8.5.so #18 0x080486e9 in main () ---------------------------------------------------------------------- Comment By: Franco Violi (effevi) Date: 2004-09-03 07:59 Message: Logged In: YES user_id=102771 Ok. I will do it as soon as possible, this evening Italian time. Thanks. ---------------------------------------------------------------------- Comment By: Vince Darley (vincentdarley) Date: 2004-09-02 09:14 Message: Logged In: YES user_id=32170 I can't do much about this with a real stack trace from your debugger. Can you compile with debug symbols and try again, please? thanks! ---------------------------------------------------------------------- Comment By: Franco Violi (effevi) Date: 2004-09-02 06:22 Message: Logged In: YES user_id=102771 Sorry, not "while trying to setting owner and group" but "while trying to change permissions". ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=1020538&group_id=10894 |