[Bug 258211] /usr/src/lib/libsecureboot/verify_file.c:59:22: error: use of undeclared identifier 'SOPEN_MAX'

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 02 Sep 2021 13:20:30 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258211

            Bug ID: 258211
           Summary: /usr/src/lib/libsecureboot/verify_file.c:59:22: error:
                    use of undeclared identifier 'SOPEN_MAX'
           Product: Base System
           Version: 13.0-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: ohartmann@walstatt.org

For a while now, 13-STABLE is not willing to build if WITH_BEARSSL is enabled
in src.conf. Reporting this problem on the mailing list (CURRENT) did not have
the impact I wished for, so I tried to investigate it myself.

Error:
[...]

===> libexec/rpc.sprayd (all)
--- all_subdir_stand ---
/usr/src/lib/libsecureboot/verify_file.c:59:22: error: use of undeclared
identifier 'SOPEN_MAX'
static int ve_status[SOPEN_MAX+1];
                     ^
/usr/src/lib/libsecureboot/verify_file.c:74:22: error: use of undeclared
identifier 'SOPEN_MAX'
        if (fd >= 0 && fd < SOPEN_MAX) {
                            ^
/usr/src/lib/libsecureboot/verify_file.c:78:12: error: use of undeclared
identifier 'SOPEN_MAX'
        ve_status[SOPEN_MAX] = ves;
                  ^
/usr/src/lib/libsecureboot/verify_file.c:98:19: error: use of undeclared
identifier 'SOPEN_MAX'
                fd >= 0 && fd < SOPEN_MAX)
                                ^
/usr/src/lib/libsecureboot/verify_file.c:100:20: error: use of undeclared
identifier 'SOPEN_MAX'
        return (ve_status[SOPEN_MAX]);  /* most recent */
                          ^
--- all_subdir_cddl ---
--- all_subdir_cddl/lib/libzfs ---
===> cddl/lib/libzfs (all)
--- all_subdir_sbin ---
--- all_subdir_sbin/geom ---
===> sbin/geom (all)
--- all_subdir_lib ---
--- all_subdir_lib/libclang_rt/ubsan_standalone_cxx ---
===> lib/libclang_rt/ubsan_standalone_cxx (all)
--- all_subdir_stand ---
5 errors generated.
*** [verify_file.pieo] Error code 1




It seems obvious, as the comparison between recent CURRENT, where the sources
build fine even with WITH_BEARSSL set and recent 13-STABLE, where world fails
to build due to the error indicated above, see for yourself, the constant is
undefinied in 13-STABLE:

On recent 13-STABLE:

:/usr/src # grep -r SOPEN_MAX *
lib/libsecureboot/tests/Makefile:XCFLAGS.verify_file += -DSOPEN_MAX=64
lib/libsecureboot/verify_file.c:static int ve_status[SOPEN_MAX+1];
lib/libsecureboot/verify_file.c:        if (fd >= 0 && fd < SOPEN_MAX) {
lib/libsecureboot/verify_file.c:        ve_status[SOPEN_MAX] = ves;
lib/libsecureboot/verify_file.c: *      @li ve_status[SOPEN_MAX] if
ve_status_state is none
lib/libsecureboot/verify_file.c:                fd >= 0 && fd < SOPEN_MAX)
lib/libsecureboot/verify_file.c:        return (ve_status[SOPEN_MAX]);  /* most
recent */


On recent CURRENT:

[...]
:/pool/sources/CURRENT/src # grep -r SOPEN_MAX *
lib/libsecureboot/verify_file.c:#ifndef SOPEN_MAX
lib/libsecureboot/verify_file.c:#define SOPEN_MAX       64
lib/libsecureboot/verify_file.c:static int ve_status[SOPEN_MAX+1];
lib/libsecureboot/verify_file.c:        if (fd >= 0 && fd < SOPEN_MAX) {
lib/libsecureboot/verify_file.c:        ve_status[SOPEN_MAX] = ves;
lib/libsecureboot/verify_file.c: *      @li ve_status[SOPEN_MAX] if
ve_status_state is none
lib/libsecureboot/verify_file.c:                fd >= 0 && fd < SOPEN_MAX)
lib/libsecureboot/verify_file.c:        return (ve_status[SOPEN_MAX]);  /* most
recent */
lib/libsecureboot/tests/Makefile:XCFLAGS.verify_file += -DSOPEN_MAX=64

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