Index: samba-3.3.12/source/smbd/service.c =================================================================== --- samba-3.3.12.orig/source/smbd/service.c +++ samba-3.3.12/source/smbd/service.c @@ -409,7 +409,7 @@ int find_service(fstring service) if ((iPrinterService = lp_servicenumber(PRINTERS_NAME)) < 0) { iPrinterService = load_registry_service(PRINTERS_NAME); } - if (iPrinterService) { + if (iPrinterService >= 0) { DEBUG(3,("checking whether %s is a valid printer name...\n", service)); if (pcap_printername_ok(service)) { DEBUG(3,("%s is a valid printer name\n", service)); Index: samba-3.3.12/source/smbd/sesssetup.c =================================================================== --- samba-3.3.12.orig/source/smbd/sesssetup.c +++ samba-3.3.12/source/smbd/sesssetup.c @@ -1199,7 +1199,7 @@ static void reply_sesssetup_and_X_spnego file_save("negotiate.dat", blob1.data, blob1.length); #endif - p2 = (char *)req->inbuf + smb_vwv13 + data_blob_len; + p2 = (char *)req->inbuf + smb_vwv13 + blob1.length; p2 += srvstr_pull_buf(req->inbuf, smb_flag2, native_os, p2, sizeof(native_os), STR_TERMINATE); p2 += srvstr_pull_buf(req->inbuf, smb_flag2, native_lanman, p2,