|
|
6e892e7 |
diff -ur chntpw-080526/ntreg.c chntpw-080526.novalue/ntreg.c
|
|
|
6e892e7 |
--- chntpw-080526/ntreg.c 2009-06-08 14:44:09.000000000 +0100
|
|
|
6e892e7 |
+++ chntpw-080526.novalue/ntreg.c 2009-06-08 14:43:48.000000000 +0100
|
|
|
6e892e7 |
@@ -2667,21 +2667,23 @@
|
|
|
6e892e7 |
value = (char *)get_val_data(hdesc, nkofs, vex.name, vex.type, TPF_VK_EXACT);
|
|
|
6e892e7 |
len = get_val_len(hdesc, nkofs, vex.name, TPF_VK_EXACT);
|
|
|
6e892e7 |
|
|
|
6e892e7 |
- if (vex.type == REG_BINARY) {
|
|
|
6e892e7 |
- fprintf(file, "\"%s\"=hex:", vex.name);
|
|
|
6e892e7 |
- } else {
|
|
|
6e892e7 |
- fprintf(file, "\"%s\"=hex(%x):", vex.name, vex.type);
|
|
|
6e892e7 |
- }
|
|
|
6e892e7 |
- byte = 0;
|
|
|
6e892e7 |
- while (byte < len) { /* go byte by byte.. probably slow.. */
|
|
|
6e892e7 |
- fprintf(file, "%02x,", (unsigned char)value[byte]);
|
|
|
6e892e7 |
- byte++;
|
|
|
6e892e7 |
- if (!(byte % 20)) fprintf(file, "\\\r\n ");
|
|
|
6e892e7 |
- }
|
|
|
6e892e7 |
- fprintf(file, "%02x\r\n", (unsigned char)value[byte]);
|
|
|
6e892e7 |
- }
|
|
|
6e892e7 |
+ if (value && len >= 0) {
|
|
|
6e892e7 |
+ if (vex.type == REG_BINARY) {
|
|
|
6e892e7 |
+ fprintf(file, "\"%s\"=hex:", vex.name);
|
|
|
6e892e7 |
+ } else {
|
|
|
6e892e7 |
+ fprintf(file, "\"%s\"=hex(%x):", vex.name, vex.type);
|
|
|
6e892e7 |
+ }
|
|
|
6e892e7 |
+ byte = 0;
|
|
|
6e892e7 |
+ while (byte < len) { /* go byte by byte.. probably slow.. */
|
|
|
6e892e7 |
+ fprintf(file, "%02x,", (unsigned char)value[byte]);
|
|
|
6e892e7 |
+ byte++;
|
|
|
6e892e7 |
+ if (!(byte % 20)) fprintf(file, "\\\r\n ");
|
|
|
6e892e7 |
+ }
|
|
|
6e892e7 |
+ fprintf(file, "%02x\r\n", (unsigned char)value[byte]);
|
|
|
6e892e7 |
|
|
|
6e892e7 |
- FREE(vex.name);
|
|
|
6e892e7 |
+ FREE(vex.name);
|
|
|
6e892e7 |
+ }
|
|
|
6e892e7 |
+ }
|
|
|
6e892e7 |
}
|
|
|
6e892e7 |
}
|
|
|
6e892e7 |
|