[Bug 201657] Buffer overflow in libdtrace

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Jul 17 18:42:26 UTC 2015


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

            Bug ID: 201657
           Summary: Buffer overflow in libdtrace
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: pfg at FreeBSD.org

While testing with the experimental version of FORTIFY_SOURCE from GSoC 2015,
This issue was found on MIPS (with the native gcc 4.2.1).
...
===> cddl/lib/libdtrace (all)
cc1: warnings being treated as errors
/scratch/tmp/pfg/head/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c:
In function 'dt_printf_format':
/scratch/tmp/pfg/head/cddl/lib/libdtrace/../../../cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c:1562:
warning: call to __snprintf_chk will always overflow destination buffer
--- dt_printf.So ---
*** [dt_printf.So] Error code 1

make[7]: stopped in /scratch/tmp/pfg/head/cddl/lib/libdtrace
1 error
...

For comparison, coverity found this:

1561                if (width != 0)
1562                        f += snprintf(f, sizeof (format), "%d",
ABS(width));
1563

60. Condition prec > 0, taking true branch
1564                if (prec > 0)

CID 1018005 (#1 of 1): Out-of-bounds access (OVERRUN)61. overrun-buffer-arg:
Overrunning buffer pointed to by f of 64 bytes by passing it to a function
which accesses it at byte offset 70 using argument 64U. [Note: The source code
implementation of the function has been overridden by a builtin model.]
1565                        f += snprintf(f, sizeof (format), ".%d", prec);
1566
...

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


More information about the freebsd-bugs mailing list