diff --git a/source/smbd/reply.c b/source/smbd/reply.c index 0de0e15274c..9d5d34e410f 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -3722,6 +3722,13 @@ int reply_lockingX(connection_struct *conn, char *inbuf,char *outbuf,int length, CHECK_FSP(fsp,conn); data = smb_buf(inbuf); + + if (locktype & (LOCKING_ANDX_CANCEL_LOCK | LOCKING_ANDX_CHANGE_LOCKTYPE)) { + /* we don't support these - and CANCEL_LOCK makes w2k + and XP reboot so I don't really want to be + compatible! (tridge) */ + return ERROR_NT(NT_STATUS_NOT_SUPPORTED); + } /* Check if this is an oplock break on a file we have granted an oplock on.