@Override
	public Pair<byte[], TaintVec> unix_read(PcodeExecutorState<Pair<byte[], TaintVec>> state,
			Pair<byte[], TaintVec> fd, Pair<byte[], TaintVec> bufPtr,
			Pair<byte[], TaintVec> count) {

		Pair<byte[], TaintVec> result = super.unix_read(state, fd, bufPtr, count);

		TaintVec taintResult = result.getRight();
		// TODO: Some representation of a "min" function. For now, just mix everything
		taintResult = TaintVec.copies(taintResult.union().union(count.getRight().union()),
			taintResult.length);
		// TODO: This seems to make sense, but maybe a different tag?
		//   We're "reading" the size field from a table lookup, keyed by fd
		taintResult = taintResult.tagIndirectRead(fd.getRight());

		// TODO: Should I taint the output buffer with the file descriptor? Meh.
		return Pair.of(result.getLeft(), taintResult);
	}
A library for performing Taint Analysis on a Linux-amd64 program that reads from tainted files

<p>
This library is not currently accessible from the UI. It can be used with scripts by overriding a
taint emulator's userop library factory method.

<p>
TODO: A means of adding and configuring userop libraries in the UI.

<p>
TODO: Example scripts.
Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/pcode/emu/taint/lib/TaintFileReadsLinuxAmd64SyscallLibrary.java