Changeset 338 for branches/samba-3.3.x/source/smbd
- Timestamp:
- Oct 8, 2009, 8:10:05 AM (16 years ago)
- Location:
- branches/samba-3.3.x/source/smbd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.3.x/source/smbd/process.c
r223 r338 439 439 msg->end_time = end_time; 440 440 msg->encrypted = req->encrypted; 441 msg->processed = false; 441 442 442 443 if (private_data) { … … 494 495 (unsigned int)msg_mid )); 495 496 if (mid == msg_mid) { 497 498 if (pml->processed) { 499 /* A processed message should not be 500 * rescheduled. */ 501 DEBUG(0,("schedule_deferred_open_smb_message: LOGIC ERROR " 502 "message mid %u was already processed\n", 503 (unsigned int)msg_mid )); 504 continue; 505 } 506 496 507 DEBUG(10,("schedule_deferred_open_smb_message: scheduling mid %u\n", 497 508 mid )); … … 508 519 509 520 /**************************************************************************** 510 Return true if this mid is on the deferred queue .521 Return true if this mid is on the deferred queue and was not yet processed. 511 522 ****************************************************************************/ 512 523 … … 516 527 517 528 for (pml = deferred_open_queue; pml; pml = pml->next) { 518 if (SVAL(pml->buf.data,smb_mid) == mid ) {529 if (SVAL(pml->buf.data,smb_mid) == mid && !pml->processed) { 519 530 return True; 520 531 } … … 785 796 know this is a retry. */ 786 797 DEBUG(5,("receive_message_or_smb: returning deferred open smb message.\n")); 798 799 /* Mark the message as processed so this is not 800 * re-processed in error. */ 801 msg->processed = true; 787 802 return NT_STATUS_OK; 788 803 } … … 1429 1444 if (!change_to_user(conn,session_tag)) { 1430 1445 reply_nterror(req, NT_STATUS_DOS(ERRSRV, ERRbaduid)); 1431 remove_deferred_open_smb_message(req->mid);1432 1446 return conn; 1433 1447 } … … 1494 1508 static void construct_reply(char *inbuf, int size, size_t unread_bytes, bool encrypted) 1495 1509 { 1510 struct pending_message_list *pml = NULL; 1496 1511 uint8 type = CVAL(inbuf,smb_com); 1497 1512 connection_struct *conn; … … 1508 1523 1509 1524 conn = switch_message(type, req, size); 1525 1526 /* If this was a deferred message and it's still there and 1527 * was processed, remove it. */ 1528 pml = get_open_deferred_message(req->mid); 1529 if (pml && pml->processed) { 1530 remove_deferred_open_smb_message(req->mid); 1531 } 1510 1532 1511 1533 if (req->unread_bytes) { -
branches/samba-3.3.x/source/smbd/service.c
r281 r338 55 55 const char *s = connectpath; 56 56 bool start_of_name_component = true; 57 58 if (connectpath == NULL || connectpath[0] == '\0') { 59 return false; 60 } 57 61 58 62 destname = SMB_STRDUP(connectpath); … … 336 340 int iHomeService; 337 341 338 if (!service || !homedir )342 if (!service || !homedir || homedir[0] == '\0') 339 343 return -1; 340 344
Note:
See TracChangeset
for help on using the changeset viewer.