diff options
author | Mike Reed <reed@google.com> | 2017-03-15 13:38:26 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-15 18:16:30 +0000 |
commit | cd9ada55073b492409e682118b463de09a31230d (patch) | |
tree | 227eacedbbc615ce70ee1838d5065798ddccfe8e /src/core/SkReader32.h | |
parent | 2f3865b5084095ca7b634e0fcb0815be6b4c2945 (diff) |
must check for zero-length in reader32::read() before calling memcpy
memcpy's behavior is undefined if the dst-ptr is null, but reader32 supports
null as long as the size is 0, so it needs to check explicitly before
calling memcpy. This is implemented (now) by calling sk_careful_memcpy.
BUG=skia:
Change-Id: I7033cc5e6d724f50f0aafd9808e297b953848aa7
Reviewed-on: https://skia-review.googlesource.com/9729
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/core/SkReader32.h')
-rw-r--r-- | src/core/SkReader32.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/SkReader32.h b/src/core/SkReader32.h index 7e31fb9e23..1f027f71bb 100644 --- a/src/core/SkReader32.h +++ b/src/core/SkReader32.h @@ -96,7 +96,7 @@ public: void read(void* dst, size_t size) { SkASSERT(0 == size || dst != nullptr); SkASSERT(ptr_align_4(fCurr)); - memcpy(dst, fCurr, size); + sk_careful_memcpy(dst, fCurr, size); fCurr += SkAlign4(size); SkASSERT(fCurr <= fStop); } |