Skip to content

Commit

Permalink
Merge "Pad 'Left' when building under ASan"
Browse files Browse the repository at this point in the history
  • Loading branch information
Johann Koenig authored and Gerrit Code Review committed Aug 4, 2016
2 parents 36608af + a7a8e07 commit 476e8fc
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
15 changes: 14 additions & 1 deletion vp8/common/reconintra4x4.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#include "vp8_rtcd.h"
#include "blockd.h"
#include "reconintra4x4.h"
#include "vp8/common/common.h"
#include "vpx_ports/mem.h"

typedef void (*intra_pred_fn)(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left);
Expand All @@ -38,8 +40,19 @@ void vp8_intra4x4_predict(unsigned char *above, unsigned char *yleft,
int left_stride, B_PREDICTION_MODE b_mode,
unsigned char *dst, int dst_stride,
unsigned char top_left) {
unsigned char Left[4];
unsigned char Aboveb[12], *Above = Aboveb + 4;
#if HAVE_NEON
// Neon intrinsics are unable to load 32 bits, or 4 8 bit values. Instead, it
// over reads but does not use the extra 4 values.
unsigned char Left[8];
#if VPX_WITH_ASAN
// Silence an 'uninitialized read' warning. Although uninitialized values are
// indeed read, they are not used.
vp8_zero_array(Left, 8);
#endif // VPX_WITH_ASAN
#else
unsigned char Left[4];
#endif // HAVE_NEON

Left[0] = yleft[0];
Left[1] = yleft[left_stride];
Expand Down
10 changes: 10 additions & 0 deletions vpx_ports/mem.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,14 @@
#define CONVERT_TO_BYTEPTR(x) ((uint8_t *)(((uintptr_t)(x)) >> 1))
#endif // CONFIG_VP9_HIGHBITDEPTH

#if !defined(__has_feature)
#define __has_feature(x) 0
#endif // !defined(__has_feature)

#if __has_feature(address_sanitizer) || __SANITIZE_ADDRESS__
#define VPX_WITH_ASAN 1
#else
#define VPX_WITH_ASAN 0
#endif // __has_feature(address_sanitizer) || __SANITIZE_ADDRESS

#endif // VPX_PORTS_MEM_H_

0 comments on commit 476e8fc

Please sign in to comment.