diff options
author | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2015-09-25 17:23:17 +0000 |
---|---|---|
committer | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2015-09-25 17:23:17 +0000 |
commit | 7edeef1bbf23e44cafc63087106be272bddf23c0 (patch) | |
tree | d26e1666afe6a83d9d653df103d14c10cf8bfc82 /openmp/runtime/src | |
parent | 0cb8517dc658ab0a785c34e4d5582459e9263fb8 (diff) | |
download | bcm5719-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.cpp | 10 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_alloc.c | 2 |
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 |