Index: generic/xotcl.c
===================================================================
diff -u -re308078f0e97d3ab61462fa52333f97f32a72ca7 -r9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8
--- generic/xotcl.c	(.../xotcl.c)	(revision e308078f0e97d3ab61462fa52333f97f32a72ca7)
+++ generic/xotcl.c	(.../xotcl.c)	(revision 9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8)
@@ -8528,7 +8528,7 @@
 static int
 XOTclOInfoMethod(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
   XOTclObject *obj = (XOTclObject*)cd;
-  Tcl_Namespace *nsp = obj->nsPtr;
+  Tcl_Namespace *nsp;
   char *cmd, *pattern;
   int modifiers = 0;
   XOTclObjectOpt *opt;
@@ -8537,6 +8537,7 @@
   if (objc < 2)
     return XOTclObjErrArgCnt(interp, obj->cmdName, "info <opt> ?args?");
 
+  nsp = obj->nsPtr;
   opt = obj->opt;
   cmd = ObjStr(objv[1]);
   pattern = (objc > 2) ? ObjStr(objv[2]) : 0;
Index: library/store/XOTclSdbm/sdbm.c
===================================================================
diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8
--- library/store/XOTclSdbm/sdbm.c	(.../sdbm.c)	(revision c72f9f638677608fab1502cd696c8f2d6b2952f9)
+++ library/store/XOTclSdbm/sdbm.c	(.../sdbm.c)	(revision 9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8)
@@ -114,7 +114,8 @@
 /*
  * build the file names
  */
-	dirname = strcat(strcpy(dirname, file), DIRFEXT);
+	strcpy(dirname, file);
+	dirname = strcat(dirname, DIRFEXT);
 	pagname = strcpy(dirname + strlen(dirname) + 1, file);
 	pagname = strcat(pagname, PAGFEXT);
 
Index: library/xml/TclExpat-1.1/readfilemap.c
===================================================================
diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8
--- library/xml/TclExpat-1.1/readfilemap.c	(.../readfilemap.c)	(revision c72f9f638677608fab1502cd696c8f2d6b2952f9)
+++ library/xml/TclExpat-1.1/readfilemap.c	(.../readfilemap.c)	(revision 9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8)
@@ -59,27 +59,32 @@
   }
   if (fstat(fd, &sb) < 0) {
     perror(name);
+    close(fd);
     return 0;
   }
   if (!S_ISREG(sb.st_mode)) {
     fprintf(stderr, "%s: not a regular file\n", name);
+    close(fd);
     return 0;
   }
   nbytes = sb.st_size;
   p = malloc(nbytes);
   if (!p) {
     fprintf(stderr, "%s: out of memory\n", name);
+    close(fd);
     return 0;
   }
   n = read(fd, p, nbytes);
   if (n < 0) {
     perror(name);
     close(fd);
+    free(p);
     return 0;
   }
   if (n != nbytes) {
     fprintf(stderr, "%s: read unexpected number of bytes\n", name);
     close(fd);
+    free(p);
     return 0;
   }
   processor(p, nbytes, name, arg);
Index: library/xml/TclExpat-1.1/xmlparse.c
===================================================================
diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -r9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8
--- library/xml/TclExpat-1.1/xmlparse.c	(.../xmlparse.c)	(revision c72f9f638677608fab1502cd696c8f2d6b2952f9)
+++ library/xml/TclExpat-1.1/xmlparse.c	(.../xmlparse.c)	(revision 9a4096c393b0a94ea8d17f2fef3cdca0f1202fb8)
@@ -799,7 +799,7 @@
 	  const char **nextPtr)
 {
   const ENCODING *internalEnc = XmlGetInternalEncoding();
-  const char *dummy;
+  const char *dummy = NULL; /* make cppcheck happy */
   const char **eventPP;
   const char **eventEndPP;
   if (enc == encoding) {
@@ -1081,6 +1081,7 @@
 	  return XML_ERROR_BAD_CHAR_REF;
 	if (characterDataHandler) {
 	  XML_Char buf[XML_ENCODE_MAX];
+	  buf[0] = '\0';
 	  characterDataHandler(handlerArg, buf, XmlEncode(n, (ICHAR *)buf));
 	}
 	else if (defaultHandler)
@@ -1295,7 +1296,7 @@
 			      const char **nextPtr)
 {
   const char *s = *startPtr;
-  const char *dummy;
+  const char *dummy = NULL;  /* make cppcheck happy */
   const char **eventPP;
   const char **eventEndPP;
   if (enc == encoding) {