Lines Matching refs:size

176 static dfsan_origin GetOriginIfTainted(uptr addr, uptr size) {  in GetOriginIfTainted()  argument
177 for (uptr i = 0; i < size; ++i, ++addr) { in GetOriginIfTainted()
230 static void ChainAndWriteOriginIfTainted(uptr src, uptr size, uptr dst, in ChainAndWriteOriginIfTainted() argument
232 dfsan_origin o = GetOriginIfTainted(src, size); in ChainAndWriteOriginIfTainted()
244 static void CopyOrigin(const void *dst, const void *src, uptr size, in CopyOrigin() argument
254 uptr end = OriginAlignDown(d + size); in CopyOrigin()
260 if (end < d + size) in CopyOrigin()
261 ChainAndWriteOriginIfTainted((uptr)src + (end - d), (d + size) - end, end, in CopyOrigin()
289 static void ReverseCopyOrigin(const void *dst, const void *src, uptr size, in ReverseCopyOrigin() argument
292 uptr end = OriginAlignDown(d + size); in ReverseCopyOrigin()
295 if (end < d + size) in ReverseCopyOrigin()
296 ChainAndWriteOriginIfTainted((uptr)src + (end - d), (d + size) - end, end, in ReverseCopyOrigin()
331 static void MoveOrigin(const void *dst, const void *src, uptr size, in MoveOrigin() argument
335 !MEM_IS_SHADOW(shadow_for((void *)((uptr)dst + size))) || in MoveOrigin()
337 !MEM_IS_SHADOW(shadow_for((void *)((uptr)src + size)))) { in MoveOrigin()
346 uptr src_aligned_end = OriginAlignDown((uptr)src + size); in MoveOrigin()
349 return ReverseCopyOrigin(dst, src, size, stack); in MoveOrigin()
350 return CopyOrigin(dst, src, size, stack); in MoveOrigin()
354 static void SetOrigin(const void *dst, uptr size, u32 origin) { in SetOrigin() argument
355 if (size == 0) in SetOrigin()
363 uptr end = OriginAlignUp(x + size); // align up. in SetOrigin()
431 __dfsan_mem_shadow_origin_transfer(void *dst, const void *src, uptr size) { in __dfsan_mem_shadow_origin_transfer() argument
434 CopyShadow(dst, src, size); in __dfsan_mem_shadow_origin_transfer()
440 MoveOrigin(dst, src, size, &stack); in __dfsan_mem_shadow_origin_transfer()
448 const void *desired, uptr size) { in __dfsan_mem_shadow_origin_conditional_exchange() argument
463 CopyShadow(dst, src, size); in __dfsan_mem_shadow_origin_conditional_exchange()
469 MoveOrigin(dst, src, size, &stack); in __dfsan_mem_shadow_origin_conditional_exchange()
478 void dfsan_copy_memory(void *dst, const void *src, uptr size) { in dfsan_copy_memory() argument
479 internal_memcpy(dst, src, size); in dfsan_copy_memory()
480 dfsan_mem_shadow_transfer(dst, src, size); in dfsan_copy_memory()
482 dfsan_mem_origin_transfer(dst, src, size); in dfsan_copy_memory()
486 static void ReleaseOrigins(void *addr, uptr size) { in ReleaseOrigins() argument
488 const void *end_addr = (void *)((uptr)addr + size); in ReleaseOrigins()
518 static void ReleaseOrClearShadows(void *addr, uptr size) { in ReleaseOrClearShadows() argument
520 const void *end_addr = (void *)((uptr)addr + size); in ReleaseOrClearShadows()
545 void SetShadow(dfsan_label label, void *addr, uptr size, dfsan_origin origin) { in SetShadow() argument
548 internal_memset((void *)beg_shadow_addr, label, size); in SetShadow()
550 SetOrigin(addr, size, origin); in SetShadow()
555 ReleaseOrigins(addr, size); in SetShadow()
557 ReleaseOrClearShadows(addr, size); in SetShadow()
566 dfsan_label s, void *p, uptr size, dfsan_origin o) { in __dfsan_maybe_store_origin() argument
570 SetOrigin(p, size, ChainOrigin(o, &stack)); in __dfsan_maybe_store_origin()
575 dfsan_label label, dfsan_origin origin, void *addr, uptr size) { in __dfsan_set_label() argument
576 __dfsan::SetShadow(label, addr, size, origin); in __dfsan_set_label()
580 void dfsan_set_label(dfsan_label label, void *addr, uptr size) { in dfsan_set_label() argument
587 __dfsan::SetShadow(label, addr, size, init_origin); in dfsan_set_label()
591 void dfsan_add_label(dfsan_label label, void *addr, uptr size) { in dfsan_add_label() argument
599 SetOrigin(addr, size, init_origin); in dfsan_add_label()
602 for (dfsan_label *labelp = shadow_for(addr); size != 0; --size, ++labelp) in dfsan_add_label()
641 dfsan_read_label(const void *addr, uptr size) { in dfsan_read_label() argument
642 if (size == 0) in dfsan_read_label()
644 return __dfsan_union_load(shadow_for(addr), size); in dfsan_read_label()
648 dfsan_read_origin_of_first_taint(const void *addr, uptr size) { in dfsan_read_origin_of_first_taint() argument
649 return GetOriginIfTainted((uptr)addr, size); in dfsan_read_origin_of_first_taint()
655 uptr size) { in dfsan_set_label_origin() argument
656 __dfsan_set_label(label, origin, addr, size); in dfsan_set_label_origin()
1041 void dfsan_clear_arg_tls(uptr offset, uptr size) { in dfsan_clear_arg_tls() argument
1042 internal_memset((void *)((uptr)__dfsan_arg_tls + offset), 0, size); in dfsan_clear_arg_tls()
1076 uptr size = end - start; in dfsan_flush() local
1086 if (!MmapFixedSuperNoReserve(start, size, kMemoryLayout[i].name)) { in dfsan_flush()
1130 static bool CheckMemoryRangeAvailability(uptr beg, uptr size) { in CheckMemoryRangeAvailability() argument
1131 if (size > 0) { in CheckMemoryRangeAvailability()
1132 uptr end = beg + size - 1; in CheckMemoryRangeAvailability()
1143 static bool ProtectMemoryRange(uptr beg, uptr size, const char *name) { in ProtectMemoryRange() argument
1144 if (size > 0) { in ProtectMemoryRange()
1145 void *addr = MmapFixedNoAccess(beg, size, name); in ProtectMemoryRange()
1151 size -= gap; in ProtectMemoryRange()
1152 addr = MmapFixedNoAccess(beg, size, name); in ProtectMemoryRange()
1155 uptr end = beg + size - 1; in ProtectMemoryRange()
1186 uptr size = end - start; in InitShadow() local
1201 if (!CheckMemoryRangeAvailability(start, size)) in InitShadow()
1203 if (!MmapFixedSuperNoReserve(start, size, kMemoryLayout[i].name)) in InitShadow()
1206 DontDumpShadowMemory(start, size); in InitShadow()
1209 if (!CheckMemoryRangeAvailability(start, size)) in InitShadow()
1211 if (!ProtectMemoryRange(start, size, kMemoryLayout[i].name)) in InitShadow()