From owner-freebsd-ports Fri Jun 9 23: 0: 8 2000 Delivered-To: freebsd-ports@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 7751037C5AE for ; Fri, 9 Jun 2000 23:00:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id XAA56085; Fri, 9 Jun 2000 23:00:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from marvin.kazrak.com (adsl-209-233-16-235.dsl.snfc21.pacbell.net [209.233.16.235]) by hub.freebsd.org (Postfix) with ESMTP id 67BE037C654 for ; Fri, 9 Jun 2000 22:55:10 -0700 (PDT) (envelope-from brad@kazrak.com) Received: by marvin.kazrak.com (Postfix, from userid 1001) id 2463E1C0; Fri, 9 Jun 2000 22:55:09 -0700 (PDT) Message-Id: <20000610055509.2463E1C0@marvin.kazrak.com> Date: Fri, 9 Jun 2000 22:55:09 -0700 (PDT) From: brad@kazrak.com Reply-To: brad@kazrak.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: ports/19165: cdda2wav (cdrecord port) broken for IOCTL (IDE) drives Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 19165 >Category: ports >Synopsis: cdda2wav can no longer read from IDE drives using 'cooked_ioctl' >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jun 09 23:00:01 PDT 2000 >Closed-Date: >Last-Modified: >Originator: R Bradford Jones >Release: FreeBSD 5.0-CURRENT i386 >Organization: Kazrak Enterprises >Environment: FreeBSD 5.0-CURRENT i386 updated 09Jun2000. cdrecord-1.8.1 from ports updated 09Jun2000. Machine is SMP but problem persists when compiled with no -j flags. Further machine details available upon request. >Description: cdda2wav (part of the cdrecord port) no longer works with IDE drives via the cooked_ioctl interface; any attempt to use this interface immediately segfaults in main (file cdda2wav.c) at line 2010: cdtracks = ReadToc( get_scsi_p(), g_toc ); ReadToc is a function pointer that gets set in SetupInterface (file interface.c); this should call to SetupCookedIoctl (ioctl.c), which will actually set the function pointer. However, the HAVE_IOCTL_INTERFACE #define which protects this code is unset, despite being set on the command line; it appears that something in mycdrom.h is #undefing it. Since ReadToc is never set, it is NULL upon reaching this line, whereupon the program segfaults as it attempts to dereference NULL. >How-To-Repeat: Build cdda2wav and attempt to run it with '-I cooked_ioctl'. >Fix: Find the right combinations of flags/changes to mycdrom.h to #define HAVE_IOCTL_INTERFACE properly. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message