You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2021/12/07 07:23:45 UTC

[GitHub] [arrow] cyb70289 commented on a change in pull request #11789: ARROW-14898: [C++][Compute] Fix crash of out-of-bounds memory accessing in key_hash if a key is smaller than int64

cyb70289 commented on a change in pull request #11789:
URL: https://github.com/apache/arrow/pull/11789#discussion_r763701245



##########
File path: cpp/src/arrow/util/ubsan.h
##########
@@ -52,20 +52,42 @@ inline T* MakeNonNull(T* maybe_null = NULLPTR) {
   return const_cast<T*>(reinterpret_cast<const T*>(&internal::kNonNullFiller));
 }
 
+// SafeLoadAs with a specific number of bytes
+// The returned bytes whose position is greater than `num_bytes` will be initialized to 0
+template <typename T>
+inline typename std::enable_if<std::is_trivial<T>::value, T>::type SafeLoadAs(
+    const uint8_t* unaligned, uint32_t num_bytes) {

Review comment:
       Agreed that it doesn't look like a generally useful function.
   IMHO, directly write `r = 0; std::memcpy(&r, ...)` at the caller side is better, a function is not necessary.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org