diff --git a/src/smblib/smblib.c b/src/smblib/smblib.c index 08fc4ea9f2d9bd4a627b9447a5da015844a9abc0..a0b7e893f3ab13b1e02b78c89a38c916d3a90aa7 100644 --- a/src/smblib/smblib.c +++ b/src/smblib/smblib.c @@ -1940,6 +1940,7 @@ int SMBCALL smb_updatethread(smb_t* smb, smbmsg_t* remsg, ulong newmsgnum) return(retval); remsg->hdr.thread_first=newmsgnum; + remsg->hdr.attr |= MSG_REPLIED; retval=smb_putmsghdr(smb,remsg); smb_unlockmsghdr(smb,remsg); return(retval); @@ -1949,7 +1950,7 @@ int SMBCALL smb_updatethread(smb_t* smb, smbmsg_t* remsg, ulong newmsgnum) memset(&nextmsg,0,sizeof(nextmsg)); nextmsgnum=remsg->hdr.thread_first; /* start with first reply */ - while(1) { + while(nextmsgnum > nextmsg.hdr.number) { nextmsg.idx.offset=0; nextmsg.hdr.number=nextmsgnum; if(smb_getmsgidx(smb, &nextmsg)!=SMB_SUCCESS) /* invalid thread origin */