diff options
| author | dgp@users.sourceforge.net <dgp> | 2003-07-15 23:57:33 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2003-07-15 23:57:33 (GMT) |
| commit | a56d49fb890f77235096afc6f72ffff49d825f4e (patch) | |
| tree | b5dd9637844290dee0860417da3653b42f068677 | |
| parent | aaf230a886ec714efea7ed6ef02b51324f02b22e (diff) | |
| download | tcl-a56d49fb890f77235096afc6f72ffff49d825f4e.zip tcl-a56d49fb890f77235096afc6f72ffff49d825f4e.tar.gz tcl-a56d49fb890f77235096afc6f72ffff49d825f4e.tar.bz2 | |
* unix/dltest/pkga.c: Updated to not use Tcl_UtfNcmp and counted
strings instead of strcmp (not defined in any #include'd header)
and presumed NULL-terminated strings.
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | unix/dltest/pkga.c | 12 |
2 files changed, 14 insertions, 2 deletions
@@ -4,6 +4,10 @@ 2003-07-15 Don Porter <dgp@users.sourceforge.net> + * unix/dltest/pkga.c: Updated to not use Tcl_UtfNcmp and counted + strings instead of strcmp (not defined in any #include'd header) + and presumed NULL-terminated strings. + * generic/tclCompCmds.c (TclCompileIfCmd): Prior fix of Bug 711371 on 2003-04-07 introduced a buffer overflow. Corrected. [Bug 771613] diff --git a/unix/dltest/pkga.c b/unix/dltest/pkga.c index 24c2582..9957158 100644 --- a/unix/dltest/pkga.c +++ b/unix/dltest/pkga.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: pkga.c,v 1.5 2003/03/26 20:02:18 dgp Exp $ + * RCS: @(#) $Id: pkga.c,v 1.6 2003/07/15 23:57:33 dgp Exp $ */ #include "tcl.h" @@ -48,13 +48,21 @@ Pkga_EqObjCmd(dummy, interp, objc, objv) Tcl_Obj * CONST objv[]; /* Argument objects. */ { int result; + CONST char *str1, str2; + int len1, len2, n; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "string1 string2"); return TCL_ERROR; } - result = !strcmp(Tcl_GetString(objv[1]), Tcl_GetString(objv[2])); + str1 = Tcl_GetStringFromObj(objv[1], &len1); + str2 = Tcl_GetStringFromObj(objv[2], &len2); + if (len1 == len2) { + result = (Tcl_UtfNcmp(str1, str2, len1) == 0); + } else { + result = 0; + } Tcl_SetObjResult(interp, Tcl_NewIntObj(result)); return TCL_OK; } |
