diff options
-rw-r--r-- | sys/netsmb/smb_rq.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/netsmb/smb_rq.c b/sys/netsmb/smb_rq.c index eede5b1..23d9e61 100644 --- a/sys/netsmb/smb_rq.c +++ b/sys/netsmb/smb_rq.c @@ -123,7 +123,10 @@ smb_rq_new(struct smb_rq *rqp, u_char cmd) mb_put_uint8(mbp, cmd); mb_put_uint32le(mbp, 0); /* DosError */ mb_put_uint8(mbp, vcp->vc_hflags); - mb_put_uint16le(mbp, vcp->vc_hflags2); + if (cmd == SMB_COM_TRANSACTION || cmd == SMB_COM_TRANSACTION_SECONDARY) + mb_put_uint16le(mbp, (vcp->vc_hflags2 & ~SMB_FLAGS2_UNICODE)); + else + mb_put_uint16le(mbp, vcp->vc_hflags2); mb_put_mem(mbp, tzero, 12, MB_MSYSTEM); rqp->sr_rqtid = (u_int16_t*)mb_reserve(mbp, sizeof(u_int16_t)); mb_put_uint16le(mbp, 1 /*scred->sc_p->p_pid & 0xffff*/); |