OpenSSL-3.5.3: hibajavítás

Valami hiba volt a verziószámmal, amit most a 3.5.3 verzióban szerencsésen javították. Nagy öröm ez. Persze az OpenSSH azóta nem enged be, de ez csak apró mellékhatás.

TL;DR: valaki meg akart oldani egy kompatibilitási problémát, és természetesen az történt, ami ilyenkor mindig: az eredmény egy nagyobb kompatibilitási probléma lett, a visszacsinálásból pedig egy további kompatibilitási probléma lett.

Ez lenne a hibaüzenet (amiből az is látszik, hogy az OpenSSH fordításakor OpenSSL-3.3.2 volt, és 3.5.2-ig nem volt panasz):

OpenSSL version mismatch. Built against 30300020, you have 3050003f

A verziószám változása 3.5.2 és 3.5.3 között:

OPENSSL_VERSION_STR=3.5.2 OPENSSL_VERSION_NUMER=0x30500020
OPENSSL_VERSION_STR=3.5.3 OPENSSL_VERSION_NUMER=0x3050003f

Hát ebben nem látok óriási nagy különbséget, kivéve az utolsó számjegyet.

Hozzászólások

opensslv.h

/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
# define OPENSSL_VERSION_NUMBER          \
    ( (OPENSSL_VERSION_MAJOR<<28)        \
      |(OPENSSL_VERSION_MINOR<<20)       \
      |(OPENSSL_VERSION_PATCH<<4)        \
      |0xfL )

Ja és a megoldás:

DarkMagic IP sudo ln -sf libcrypto.so.3.5.2 /usr/local/lib64/libcrypto.so.3

pár jelszót kell csak beírni, aztán hálát adni, ha esetleg ettől megjavul.

Így ellenőriz az OpenSSH

        /*
         * For versions >= 3.0, only the major and status must match.
         */
        if (headerver >= 0x3000000f) {
                mask = 0xf000000fL; /* major,status */
                return (headerver & mask) == (libver & mask);
        }