BIP0016 pay-to-scripthash transaction validation BIP0016 says "Validation fails if there are any operations other than "push data" operations in the scriptSig".

What does it mean "push data operations"? OP_CHECKMULTISIG seems to be allowed but does not look like "push data" to me.
What does it mean "push data operations"?


Push data operations are when a script pushes a byte vector into the stack. Examples are pushing signatures, public keys, or scripts. It excludes all script opcodes apart from OP_PUSHDATA1, OP_PUSHDATA2, OP_PUSHDATA3. 


  OP_CHECKMULTISIG seems to be allowed but does not look like "push data" to me.
  OP_CHECKMULTISIG is an opcode, however, since it's actually contained in a byte vector. You are pushing a full script to the stack, instead of just pushing the opcode.


So, if you look at a P2SH scriptSig:


  ...signatures... {scriptLength}{script}


You'll see that OP_CHECKMULTISIG is contained within {script} instead of being directly executed by whatever is parsing the scriptSig.