Страница 1 из 1

Eggdrop + TCL 8.5.10

СообщениеДобавлено: 14 июл 2011 13:06
tvrsh
В TCL версии 8.5.10 изменилась работа функций Tcl_ScanElement() и Tcl_ConvertElement(), что привело к нескольким ошибкам в работе бота: More info on the crash "glibc detected" и DEBUG error.

Для исправления, thommey предлагает пропатчить файл tclhash.c в исходниках бота: http://forum.egghelp.org/viewtopic.php?p=97173#97173

Патч(-p1):
CPP: [ Скачать ] [ Скрыть ]
diff -urN eggdrop1.6.20/src/tclhash.c eggdrop1.6.20.fix/src/tclhash.c
--- eggdrop1.6.20/src/tclhash.c   2010-06-29 17:52:24.000000000 +0200
+++ eggdrop1.6.20.fix/src/tclhash.c   2011-07-08 23:45:37.000000000 +0200
@@ -1264,7 +1264,7 @@
   for (i = 0; cc[i].name; i++) {
     egg_snprintf(p, sizeof p, "*%s:%s", tl->name,
                  cc[i].funcname ? cc[i].funcname : cc[i].name);
-    l = nmalloc(Tcl_ScanElement(p, &k));
+    l = nmalloc(Tcl_ScanElement(p, &k)+1);
     Tcl_ConvertElement(p, l, k | TCL_DONT_USE_BRACES);
     table[0].cdata = (void *) cc[i].func;
     add_cd_tcl_cmds(table);
@@ -1282,7 +1282,7 @@
   for (i = 0; cc[i].name; i++) {
     egg_snprintf(p, sizeof p, "*%s:%s", table->name,
                  cc[i].funcname ? cc[i].funcname : cc[i].name);
-    l = nmalloc(Tcl_ScanElement(p, &k));
+    l = nmalloc(Tcl_ScanElement(p, &k)+1);
     Tcl_ConvertElement(p, l, k | TCL_DONT_USE_BRACES);
     Tcl_DeleteCommand(interp, p);
     unbind_bind_entry(table, cc[i].flags, cc[i].name, l);