Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Aug 2023 03:40:31 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 273192] [PATCH] Distextract tries to divide by 0
Message-ID:  <bug-273192-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273192

            Bug ID: 273192
           Summary: [PATCH] Distextract tries to divide by 0
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: lars@oddbit.com

Created attachment 244181
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=244181&action=edit
Patch to prevent floating point exception in distextract

In the file ./usr.sbin/bsdinstall/distextract/distextract.c, we find:

        /* Calculate [overall] percentage of completion (if possible) */
        if (file->size >= 0)
                return (file->read * 100 / file->size);
        else
                return (-1);

That conditional is incorrect; if distextract encounters a zero-length file, it
will attempt to divide by file->size, which is 0, which will cause distextract
fail error out with:

    Floating point exception (core dumped)

The attached patch prevents this error.

Addendum: I'm unclear why we use distextract. The "script" automated install
script already includes an alternate code path that uses tar if the install
isn't running on a tty; if we used this in all cases we could completely drop
distextract.

-- 
You are receiving this mail because:
You are the assignee for the bug.

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-273192-227>