Closed Bug 1526648 Opened 7 years ago Closed 7 years ago

security/certverifier/Buffer.cpp fails to build due to missing include

Categories

(Core :: Security: PSM, defect)

60 Branch
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: charlemagnelasse, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.53 Safari/537.36

Steps to reproduce:

Tried to build 60.5.0esr on Debian buster

Actual results:

/usr/bin/g++ -o Unified_cpp_certverifier0.o -c -Ibuster/stl_wrappers -Ibuster/system_wrappers -include /build/firefox-esr-60.5.0esr/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 '-DDLL_PREFIX="lib"' '-DDLL_SUFFIX=".so"' -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/build/firefox-esr-60.5.0esr/security/certverifier -I/build/firefox-esr-60.5.0esr/build-browser/security/certverifier -I/build/firefox-esr-60.5.0esr/security/manager/ssl -I/build/firefox-esr-60.5.0esr/security/pkix/include -I/build/firefox-esr-60.5.0esr/security/pkix/lib -I/build/firefox-esr-60.5.0esr/build-browser/dist/include -I/usr/include/nspr -I/usr/include/nss -fPIC -DMOZILLA_CLIENT -include /build/firefox-esr-60.5.0esr/build-browser/mozilla-config.h -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -fno-sized-deallocation -fstack-protector-strong -Wformat -Werror=format-security -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O2 -fomit-frame-pointer -Wall -Wextra -Wunreachable-code -Wno-unused-parameter -MD -MP -MF .deps/Unified_cpp_certverifier0.o.pp /build/firefox-esr-60.5.0esr/build-browser/security/certverifier/Unified_cpp_certverifier0.cpp
In file included from /build/firefox-esr-60.5.0esr/build-browser/security/certverifier/Unified_cpp_certverifier0.cpp:20:
/build/firefox-esr-60.5.0esr/security/certverifier/Buffer.cpp: In function 'bool mozilla::operator==(const Buffer&, const Buffer&)':
/build/firefox-esr-60.5.0esr/security/certverifier/Buffer.cpp:14:11: error: 'memcmp' was not declared in this scope
memcmp(a.begin(), b.begin(), a.length()) == 0);
^~~~~~
/build/firefox-esr-60.5.0esr/security/certverifier/Buffer.cpp:14:11: note: 'memcmp' is defined in header '<cstring>'; did you forget to '#include <cstring>'?
/build/firefox-esr-60.5.0esr/security/certverifier/Buffer.cpp:1:1:
+#include <cstring>
/* -- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -- */
/build/firefox-esr-60.5.0esr/security/certverifier/Buffer.cpp:14:11:
memcmp(a.begin(), b.begin(), a.length()) == 0);
^~~~~~
make[6]: *** [/build/firefox-esr-60.5.0esr/config/rules.mk:1056: Unified_cpp_certverifier0.o] Error 1
make[6]: Leaving directory '/build/firefox-esr-60.5.0esr/build-browser/security/certverifier'
make[5]: *** [/build/firefox-esr-60.5.0esr/config/recurse.mk:73: security/certverifier/target] Error 2
make[5]: Leaving directory '/build/firefox-esr-60.5.0esr/build-browser'
make[4]: *** [/build/firefox-esr-60.5.0esr/config/recurse.mk:33: compile] Error 2
make[4]: Leaving directory '/build/firefox-esr-60.5.0esr/build-browser'
make[3]: *** [/build/firefox-esr-60.5.0esr/config/rules.mk:442: default] Error 2
make[3]: Leaving directory '/build/firefox-esr-60.5.0esr/build-browser'
dh_auto_build: cd build-browser && make -j1 LD_LIBS=-Wl,--no-gc-sections _LEAKTEST_FILES=leaktest.py returned exit code 2
make[2]: *** [debian/rules:227: stamps/build-browser] Error 2
make[2]: Leaving directory '/build/firefox-esr-60.5.0esr'
make[1]: *** [debian/rules:336: build-arch] Error 2
make[1]: Leaving directory '/build/firefox-esr-60.5.0esr'
make: *** [debian/rules:336: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

Expected results:

Buffer.cpp builds fine. See attachment to fix build

Component: Untriaged → Security: PSM
Product: Firefox → Core

https://pubs.opengroup.org/onlinepubs/9699919799/functions/memcmp.html says memcmp is in string.h. Incidentally, the file as it exists in mozilla-central includes string.h: https://searchfox.org/mozilla-central/rev/b10ae6b7a50d176a813900cbe9dc18c85acd604b/security/ct/Buffer.cpp

Since this is specific to ESR and since our supported configurations appear to build successfully, I'm just going to wontfix this, but I appreciate the time you took to upload a patch.

Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: