summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src
diff options
context:
space:
mode:
authorJonathan Peyton <jonathan.l.peyton@intel.com>2015-09-25 17:23:17 +0000
committerJonathan Peyton <jonathan.l.peyton@intel.com>2015-09-25 17:23:17 +0000
commit7edeef1bbf23e44cafc63087106be272bddf23c0 (patch)
treed26e1666afe6a83d9d653df103d14c10cf8bfc82 /openmp/runtime/src
parent0cb8517dc658ab0a785c34e4d5582459e9263fb8 (diff)
downloadbcm5719-llvm-7edeef1bbf23e44cafc63087106be272bddf23c0.tar.gz
bcm5719-llvm-7edeef1bbf23e44cafc63087106be272bddf23c0.zip
Fix memory corruption in Windows debug library
This patch adjusts the buffer size when reducing the buffer used for printing. This solves the memory corruption in Windows debug library, and potential memory corruption in other builds. llvm-svn: 248588
Diffstat (limited to 'openmp/runtime/src')
-rw-r--r--openmp/runtime/src/kmp_affinity.cpp10
-rw-r--r--openmp/runtime/src/kmp_alloc.c2
2 files changed, 6 insertions, 6 deletions
diff --git a/openmp/runtime/src/kmp_affinity.cpp b/openmp/runtime/src/kmp_affinity.cpp
index a9d1f601fca..8386ec846ba 100644
--- a/openmp/runtime/src/kmp_affinity.cpp
+++ b/openmp/runtime/src/kmp_affinity.cpp
@@ -66,13 +66,13 @@ __kmp_affinity_print_mask(char *buf, int buf_len, kmp_affin_mask_t *mask)
}
}
if (i == KMP_CPU_SETSIZE) {
- KMP_SNPRINTF(scan, buf_len, "{<empty>}");
+ KMP_SNPRINTF(scan, end-scan+1, "{<empty>}");
while (*scan != '\0') scan++;
KMP_ASSERT(scan <= end);
return buf;
}
- KMP_SNPRINTF(scan, buf_len, "{%ld", (long)i);
+ KMP_SNPRINTF(scan, end-scan+1, "{%ld", (long)i);
while (*scan != '\0') scan++;
i++;
for (; i < KMP_CPU_SETSIZE; i++) {
@@ -89,14 +89,14 @@ __kmp_affinity_print_mask(char *buf, int buf_len, kmp_affin_mask_t *mask)
if (end - scan < 15) {
break;
}
- KMP_SNPRINTF(scan, buf_len, ",%-ld", (long)i);
+ KMP_SNPRINTF(scan, end-scan+1, ",%-ld", (long)i);
while (*scan != '\0') scan++;
}
if (i < KMP_CPU_SETSIZE) {
- KMP_SNPRINTF(scan, buf_len, ",...");
+ KMP_SNPRINTF(scan, end-scan+1, ",...");
while (*scan != '\0') scan++;
}
- KMP_SNPRINTF(scan, buf_len, "}");
+ KMP_SNPRINTF(scan, end-scan+1, "}");
while (*scan != '\0') scan++;
KMP_ASSERT(scan <= end);
return buf;
diff --git a/openmp/runtime/src/kmp_alloc.c b/openmp/runtime/src/kmp_alloc.c
index c9c57f3a1dd..21518c94a73 100644
--- a/openmp/runtime/src/kmp_alloc.c
+++ b/openmp/runtime/src/kmp_alloc.c
@@ -1178,7 +1178,7 @@ bufdump( kmp_info_t *th, void *buf )
}
for (i = 0; i < l; i++) {
- (void) KMP_SNPRINTF(bhex + i * 3, sizeof(bhex), "%02X ", bdump[i]);
+ (void) KMP_SNPRINTF(bhex + i * 3, sizeof(bhex) - i * 3, "%02X ", bdump[i]);
if (bdump[i] > 0x20 && bdump[i] < 0x7F)
bascii[ i ] = bdump[ i ];
else
OpenPOWER on IntegriCloud