summaryrefslogtreecommitdiff
path: root/source3/nmbd
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-03-27 12:38:45 +0000
committerAndrew Tridgell <tridge@samba.org>2000-03-27 12:38:45 +0000
commit18bc76a0c6830358a137b4198e17b1b7ce92b9bf (patch)
tree80ddeebfb47c978607be5c708ec5e81d10b91d6a /source3/nmbd
parent6570b48d73d4d6597cf8f17040cb57e8b16394dd (diff)
downloadsamba-18bc76a0c6830358a137b4198e17b1b7ce92b9bf.tar.gz
samba-18bc76a0c6830358a137b4198e17b1b7ce92b9bf.tar.bz2
samba-18bc76a0c6830358a137b4198e17b1b7ce92b9bf.zip
changed the definition of dos_PutUniCode
the previous definition could result is us overflowing a buffer. The null termination was always added yet the size returned did not include the null termination. the new function takes a BOOL null_terminate, and always returns the total number of bytes consumed by the string. (This used to be commit 426c90433396a95033eefcc4af97603abc934221)
Diffstat (limited to 'source3/nmbd')
-rw-r--r--source3/nmbd/nmbd_processlogon.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/source3/nmbd/nmbd_processlogon.c b/source3/nmbd/nmbd_processlogon.c
index bc4c6ea127..0886654de9 100644
--- a/source3/nmbd/nmbd_processlogon.c
+++ b/source3/nmbd/nmbd_processlogon.c
@@ -159,11 +159,8 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
{
q = align2(q, buf);
- dos_PutUniCode(q, my_name, sizeof(pstring)); /* PDC name */
- q = skip_unicode_string(q, 1);
-
- dos_PutUniCode(q, global_myworkgroup,sizeof(pstring)); /* Domain name*/
- q = skip_unicode_string(q, 1);
+ q += dos_PutUniCode(q, my_name, sizeof(pstring), True); /* PDC name */
+ q += dos_PutUniCode(q, global_myworkgroup,sizeof(pstring), True); /* Domain name*/
SIVAL(q, 0, ntversion);
SSVAL(q, 4, lmnttoken);
@@ -239,12 +236,10 @@ reporting %s domain %s 0x%x ntversion=%x lm_nt token=%x lm_20 token=%x\n",
}
q += 2;
- dos_PutUniCode(q, reply_name,sizeof(pstring));
- q = skip_unicode_string(q, 1);
+ q += dos_PutUniCode(q, reply_name,sizeof(pstring), True);
unistrcpy(q, uniuser);
q = skip_unicode_string(q, 1); /* User name (workstation trust account) */
- dos_PutUniCode(q, lp_workgroup(),sizeof(pstring));
- q = skip_unicode_string(q, 1); /* Domain name. */
+ q += dos_PutUniCode(q, lp_workgroup(),sizeof(pstring), True);
SIVAL(q, 0, ntversion);
q += 4;