/* -*- LPC -*- */ /* * $Locker: $ * $Id: valid_bind.c,v 1.4 2002/01/22 22:39:23 wodan Exp $ * $Log: valid_bind.c,v $ * Revision 1.4 2002/01/22 22:39:23 wodan * small optimisation * * Revision 1.3 2000/02/18 17:15:54 wodan * security fix * * Revision 1.2 1998/10/02 04:02:59 pinkfish * Updated to work with the new virtual objects. * * Revision 1.1 1998/01/06 05:12:03 ceres * Initial revision * */ private nosave object _simul_efun; int valid_bind(object binder, object old_owner, object new_owner) { string *womble; string fname; if(!objectp(_simul_efun)) { _simul_efun = find_object("/secure/simul_efun"); } if(binder == _simul_efun) { return 1; } if(file_name(new_owner)[0..7] == "/secure/") { return 0; } if(interactive(new_owner)) { return 0; } womble = explode(file_name(old_owner), "/"); if (sizeof(womble) < 1) { return 0; } fname = womble[<1]; if (fname[0] != '.') { return 0; } return old_owner == binder; } /* valid_bind() */