From owner-freebsd-bugs@FreeBSD.ORG Sun Feb 4 21:30:18 2007 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D52F616A40B for ; Sun, 4 Feb 2007 21:30:18 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 36D3413C474 for ; Sun, 4 Feb 2007 21:30:16 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l14LUGpf059571 for ; Sun, 4 Feb 2007 21:30:16 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l14LUFKo059567; Sun, 4 Feb 2007 21:30:15 GMT (envelope-from gnats) Resent-Date: Sun, 4 Feb 2007 21:30:15 GMT Resent-Message-Id: <200702042130.l14LUFKo059567@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alex Dupre Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D1ABB16A406 for ; Sun, 4 Feb 2007 21:28:35 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [69.147.83.33]) by mx1.freebsd.org (Postfix) with ESMTP id A99F513C4BA for ; Sun, 4 Feb 2007 21:28:35 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id l14LSZlG076647 for ; Sun, 4 Feb 2007 21:28:35 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id l14LSZgs076633; Sun, 4 Feb 2007 21:28:35 GMT (envelope-from nobody) Message-Id: <200702042128.l14LSZgs076633@www.freebsd.org> Date: Sun, 4 Feb 2007 21:28:35 GMT From: Alex Dupre To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.0 Cc: Subject: bin/108775: tip/cu core dump if $HOME is not set X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Feb 2007 21:30:18 -0000 >Number: 108775 >Category: bin >Synopsis: tip/cu core dump if $HOME is not set >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Feb 04 21:30:15 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Alex Dupre >Release: FreeBSD 6-STABLE i386 >Organization: >Environment: >Description: The code doesn't check if HOME is not set and does a strlen on a NULL value. >How-To-Repeat: # unsetenv HOME # cu -l /dev/cuad0 Segmentation fault (core dumped) >Fix: Untested patch follows: --- src/usr.bin/tip/tip/value.c 31 Aug 2006 19:19:44 -0000 1.11 +++ src/usr.bin/tip/tip/value.c 4 Feb 2007 21:25:21 -0000 @@ -74,22 +74,25 @@ * Read the .tiprc file in the HOME directory * for sets */ - if (strlen(value(HOME)) + sizeof("/.tiprc") > sizeof(file)) { - (void)fprintf(stderr, "Home directory path too long: %s\n", - value(HOME)); - } else { - snprintf(file, sizeof file, "%s/.tiprc", value(HOME)); - if ((fp = fopen(file, "r")) != NULL) { - char *tp; - - while (fgets(file, sizeof(file)-1, fp) != NULL) { - if (vflag) - printf("set %s", file); - if ((tp = strrchr(file, '\n'))) - *tp = '\0'; - vlex(file); + cp = value(HOME); + if (cp != NULL) { + if (strlen(cp) + sizeof("/.tiprc") > sizeof(file)) { + (void)fprintf(stderr, "Home directory path too long: %s\n", + cp); + } else { + snprintf(file, sizeof file, "%s/.tiprc", cp); + if ((fp = fopen(file, "r")) != NULL) { + char *tp; + + while (fgets(file, sizeof(file)-1, fp) != NULL) { + if (vflag) + printf("set %s", file); + if ((tp = strrchr(file, '\n'))) + *tp = '\0'; + vlex(file); + } + fclose(fp); } - fclose(fp); } } /* >Release-Note: >Audit-Trail: >Unformatted: