Rename scriptPubKey to witness_script in ExecuteWitnessScript() function to correctly reflect which script is being executed.
For example in segwitv0, this scriptPubKey refers to the script of the form OP_0 <script_hash>, but witness_script refers to the script that actually hashes to the script_hash.
If there is a reason why it's named this way, I would love to know