From: Jeremy Allison Date: Tue, 16 Mar 2004 00:10:34 +0000 (+0000) Subject: Avoid mb conversion overflow when sending an announcement. X-Git-Tag: samba-4.0.0alpha6~801^2~11793^2~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c377ae98b1e22f95609da7c13ec1868c7a20a9ff;p=thirdparty%2Fsamba.git Avoid mb conversion overflow when sending an announcement. Jeremy. (This used to be commit 7a62d6215d32e664345d10b87ab4e4ddeda5dc2e) --- diff --git a/source3/nmbd/nmbd_sendannounce.c b/source3/nmbd/nmbd_sendannounce.c index 6e50d2f2ff4..a74dd99196f 100644 --- a/source3/nmbd/nmbd_sendannounce.c +++ b/source3/nmbd/nmbd_sendannounce.c @@ -92,6 +92,7 @@ static void send_announcement(struct subnet_record *subrec, int announce_type, const char *server_name, int server_type, const char *server_comment) { pstring outbuf; + unstring upper_server_name; char *p; memset(outbuf,'\0',sizeof(outbuf)); @@ -103,7 +104,9 @@ static void send_announcement(struct subnet_record *subrec, int announce_type, SCVAL(p,0,updatecount); SIVAL(p,1,announce_interval*1000); /* Milliseconds - despite the spec. */ - push_string(NULL, p+5, server_name, 15, STR_ASCII|STR_UPPER|STR_TERMINATE); + safe_strcpy(upper_server_name, server_name, sizeof(upper_server_name)-1); + strupper_m(upper_server_name); + push_string(NULL, p+5, upper_server_name, 16, STR_ASCII|STR_TERMINATE); SCVAL(p,21,lp_major_announce_version()); /* Major version. */ SCVAL(p,22,lp_minor_announce_version()); /* Minor version. */