diff options
author | Volker Lendecke <vlendec@samba.org> | 2003-03-30 16:37:10 +0000 |
---|---|---|
committer | Volker Lendecke <vlendec@samba.org> | 2003-03-30 16:37:10 +0000 |
commit | 5fd03bffd3754c1f7ac2a63bcd14afd850a2e45c (patch) | |
tree | 62b4a98cf457eaffea01e6c6a455516e57b1ee4f /source3/smbd | |
parent | cdc5e0ac9a6d2bddb926a598f5c879e7fb3d8d9a (diff) | |
download | samba-5fd03bffd3754c1f7ac2a63bcd14afd850a2e45c.tar.gz samba-5fd03bffd3754c1f7ac2a63bcd14afd850a2e45c.tar.bz2 samba-5fd03bffd3754c1f7ac2a63bcd14afd850a2e45c.zip |
This changes our handling of invalid service types that the
client requested on tconx. We now return the same error
code like NT4SP6 and W2kSP3 return.
TCONDEV is a little test for this.
Volker
(This used to be commit 6f94ab8ed50ad171f25e9538417c5074feba164d)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/service.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/source3/smbd/service.c b/source3/smbd/service.c index a5e1ec4e93..080e2f76df 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -227,22 +227,27 @@ static NTSTATUS share_sanity_checks(int snum, fstring dev) return NT_STATUS_ACCESS_DENIED; } - /* you can only connect to the IPC$ service as an ipc device */ - if (strequal(lp_fstype(snum), "IPC")) - fstrcpy(dev,"IPC"); - if (dev[0] == '?' || !dev[0]) { if (lp_print_ok(snum)) { fstrcpy(dev,"LPT1:"); + } else if (strequal(lp_fstype(snum), "IPC")) { + fstrcpy(dev, "IPC"); } else { fstrcpy(dev,"A:"); } } - /* if the request is as a printer and you can't print then refuse */ strupper(dev); - if (!lp_print_ok(snum) && (strncmp(dev,"LPT",3) == 0)) { - DEBUG(1,("Attempt to connect to non-printer as a printer\n")); + + if (lp_print_ok(snum)) { + if (!strequal(dev, "LPT:")) { + return NT_STATUS_BAD_DEVICE_TYPE; + } + } else if (strequal(lp_fstype(snum), "IPC")) { + if (!strequal(dev, "IPC")) { + return NT_STATUS_BAD_DEVICE_TYPE; + } + } else if (!strequal(dev, "A:")) { return NT_STATUS_BAD_DEVICE_TYPE; } |