Lines Matching defs:origin
76 // | origin 1 |
84 // | origin 3 |
88 // | origin 2 |
109 // origin of the first taint byte at the low 32 bit.
177 // Return the origin of the first taint byte in the size bytes from the address
209 // from_init = true if this is the first chain of an origin tracking path.
217 // As an optimization the origin of an application byte is updated only when
219 // taint labels, it does not matter what origin a zero label has. This reduces
223 Printf(" DFSan found invalid origin invariant\n");
246 // contiguous bytes share the same origin.
251 // Copy left unaligned origin if that memory is tainted.
262 // Copy right unaligned origin if that memory is tainted.
297 // Copy right unaligned origin if that memory is tainted.
325 // Copy left unaligned origin if that memory is tainted.
344 // If destination origin range overlaps with source origin range, move
346 // a normal order. The orders of origin transfer are consistent with the
356 // Set the size bytes from the addres dst to be the origin value.
357 static void SetOrigin(const void *dst, uptr size, u32 origin) {
367 u64 origin64 = ((u64)origin << 32) | origin;
371 if (*(u32 *)beg != origin)
372 *(u32 *)beg = origin;
381 if (*(u32 *)(end - kOriginAlign) != origin)
382 *(u32 *)(end - kOriginAlign) = origin;
390 // Return a new origin chain with the previous ID id and the current stack
397 // Return a new origin chain with the previous ID id and the current stack
486 // Releases the pages within the origin address range.
547 dfsan_origin origin) {
552 SetOrigin(addr, size, origin);
563 // origin chain with the previous ID o and the current stack trace. This is
575 dfsan_label label, dfsan_origin origin, void *addr, uptr size) {
576 SetShadow(label, addr, size, origin);
624 // This function is used if dfsan_get_origin is called when origin tracking is
653 dfsan_origin origin,
656 __dfsan_set_label(label, origin, addr, size);
666 dfsan_origin origin);
672 static void ConditionalCallback(dfsan_label label, dfsan_origin origin) {
694 conditional_callback(label, origin);
698 __dfsan_conditional_callback_origin(dfsan_label label, dfsan_origin origin) {
699 ConditionalCallback(label, origin);
719 dfsan_origin origin,
728 static void ReachesFunctionCallback(dfsan_label label, dfsan_origin origin,
750 reaches_function_callback(label, origin, file, line, function);
754 __dfsan_reaches_function_callback_origin(dfsan_label label, dfsan_origin origin,
757 ReachesFunctionCallback(label, origin, file, line, function);
788 " %sDFSan: origin tracking is not enabled. Did you specify the "
802 " %sTaint value 0x%x (at %p) has invalid origin tracking. This can "
807 static void PrintInvalidOriginIdWarning(dfsan_origin origin) {
810 " %sOrigin Id %d has invalid origin tracking. This can "
812 d.Warning(), origin, d.Default());
848 const dfsan_origin origin = *__dfsan::origin_for(addr);
850 out->AppendF(" %sTaint value 0x%x (at %p) origin tracking (%s)%s\n",
854 Origin o = Origin::FromRawId(origin);
914 dfsan_origin origin) {
919 Origin o = Origin::FromRawId(origin);
928 PrintInvalidOriginIdWarning(origin);
932 dfsan_origin origin, char *out_buf, uptr out_buf_size) {
939 Origin o = Origin::FromRawId(origin);
945 PrintInvalidOriginIdWarning(origin);
966 const dfsan_origin origin = *__dfsan::origin_for(addr);
968 Origin o = Origin::FromRawId(origin);