Blob Blame History Raw
diff -ur chntpw-080526/ntreg.c chntpw-080526.get_abs_path/ntreg.c
--- chntpw-080526/ntreg.c	2009-06-08 14:32:00.000000000 +0100
+++ chntpw-080526.get_abs_path/ntreg.c	2009-06-08 14:30:08.000000000 +0100
@@ -1193,7 +1193,7 @@
 {
   /* int newnkofs; */
   struct nk_key *key;
-  char tmp[ABSPATHLEN+1];
+  char tmp[ABSPATHLEN];
 
   maxlen = (maxlen < ABSPATHLEN ? maxlen : ABSPATHLEN);
 
@@ -1209,6 +1209,7 @@
   }
 
   strncpy(tmp,path,ABSPATHLEN-1);
+  tmp[ABSPATHLEN-1] = '\0';
 
   if ( (strlen(path) + key->len_name) >= maxlen-6) {
     snprintf(path,maxlen,"(...)%s",tmp);
@@ -1216,7 +1217,7 @@
   }
   *path = '\\';
   memcpy(path+1,key->keyname,key->len_name);
-  strncpy(path+key->len_name+1,tmp,maxlen);
+  strcpy(path+key->len_name+1,tmp);
   return(get_abs_path(hdesc, key->ofs_parent+0x1004, path, maxlen)); /* go back one more */
 }