SYNOPSIS
	int privilege_violation(string op, mixed who, mixed arg3, mixed arg4)

DESCRIPTION
	Validate the execution of a privileged operation.
	op denotes the requested operation, who is the object
	requesting the operation (file_name or object pointer), arg3
	and arg4 are additional arguments, depending on the operation.

	The function should return >0 to grant the privilege, 0 to
	indicate that the caller was probably misleaded and the error
	might be fixed, and anything else to indicate a real
	violation, that will be handled as run time error.

	The privileged operations are:
	attach_erq_demon  Attach the erq demon to object <arg> with
	                  flag <args>.
	bind_lambda	  Bind a lambda-closure to object arg3.
	call_out_info	  Return an array with all call_out
			  informations.
        execute_command   Execute command string <arg2> for the object
                          <arg>.
	erq               A the request <arg4> is to be send to the
	                  erq-demon by the object <who>.
	input_to          Object <who> redirects the next input from
	                  commandgiver <arg3>, using <arg4> as value
	                  for the flags. This is used for flag values
	                  including the 'no bang' option.
        limited:          Execute <arg> with reduced/changed limits.
	nomask simul_efun Attempt to get an efun <arg> via efun:: when
	                  it is shadowed by a nomask type simul_efun.
	rename_object	  The object <who> tries to rename the object
			  <arg3> to the name <arg4>.
	send_imp	  Send UDP-data to host arg3.
	set_auto_include_string Set the string automatically included
			  by the compiler into every object.
	get_extra_wizinfo Get the additional wiz-list info for user
			  arg3.
	set_extra_wizinfo Set the additional wiz-list info for user
			  arg3.
	set_extra_wizinfo_size Set the size of the additional user
			  info in the wiz-list to arg3.
	set_driver_hook   Set hook <arg> to <arg2>.
        set_limits        Set limits to <arg>.
	set_this_object	  Set this_object() to arg3.
	shadow_add_action Add an action to function arg4 that is
			  shadowed by the object arg3.
	symbol_variable	  Attempt to make a symbol from a hidden
			  inherited variable. arg3 is the object in
			  question, arg4 the number of the variable in
			  the variable table.
	wizlist_info	  Return an array with all wiz-list
			  information.

	call_out_info() can return the arguments to functions and
	lambda closures to be called by call_out(); you should
	consider that read access to closures, mappings and arrays
	means write access and/or other privileges.
	wizlist_info() will return an array which holds, among others,
	the extra wizlist field. While a toplevel array, if found,
	will be copied, this does not apply to nested arrays or to any
	mappings. You might also have some sensitive closures there.
	send_imp() should be watched as it could be abused to mess up
	the IMP.
	The xxx_extra_wizinfo operations are necessary for a proper
	wizlist and should therefore be restricted to admins.
	All other operations are potential sources for direct security
	breaches - any use of them should be scrutinized closely.

SEE ALSO	
	simul_efun(C), call_out_info(E), shadow(E), add_action(E),
	wizlist(E), send_erq(E), set_this_object(E), rename_object(E),
	bind_lambda(E), send_imp(E), set_auto_include_string(E),
	input_to(E), execute_command(E)
