Date: Tue, 23 Sep 1997 16:06:56 +1000 (EST) From: Ada T Lim <ada@not-enough.bandwidth.org> To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: dholland@burgundy.eecs.harvard.edu Subject: bin/4610: potential buffer overrun in bootparamd Message-ID: <199709230606.QAA00814@polya.blah.org> Resent-Message-ID: <199709230610.XAA21038@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 4610 >Category: bin >Synopsis: potential buffer overrun in bootparamd >Confidential: yes >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Sep 22 23:10:01 PDT 1997 >Last-Modified: >Originator: Ada T Lim >Organization: >Release: FreeBSD 2.2-STABLE i386 >Environment: >Description: bootparamd copies h_name into askname, a statically sized buffer of 255 bytes. MAXHOSTNAMELEN is 256 bytes. patch written by David Holland (dholland@burgundy.eecs.harvard.edu) >How-To-Repeat: >Fix: --- bootparamd.c.dist Tue Sep 23 01:33:56 1997 +++ bootparamd.c Tue Sep 23 01:39:26 1997 @@ -68,7 +68,9 @@ if (debug) warnx("this is host %s", he->h_name); if (dolog) syslog(LOG_NOTICE,"This is host %s\n", he->h_name); - strcpy(askname, he->h_name); + strncpy(askname, he->h_name, sizeof(askname)); + askname[sizeof(askname)-1] = 0; + if (checkhost(askname, hostname) ) { res.client_name = hostname; getdomainname(domain_name, MAX_MACHINE_NAME); @@ -123,7 +125,9 @@ he = gethostbyname(getfile->client_name); if (! he ) goto failed; - strcpy(askname,he->h_name); + strncpy(askname, he->h_name, sizeof(askname)); + askname[sizeof(askname)-1] = 0; + if (getthefile(askname, getfile->file_id,buffer)) { if ( (where = index(buffer,':')) ) { /* buffer is re-written to contain the name of the info of file */ @@ -314,7 +318,8 @@ he = gethostbyname(askname); if (he && !strcmp(askname, he->h_name)) { res = 1; - sprintf(hostname,"%s", he->h_name); + // XXX the length should really be an arg to this function... + snprintf(hostname, MAX_MACHINE_NAME, "%s", he->h_name); } } if (fclose(bpf)) >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709230606.QAA00814>