samba-4.4.14 -- Már kezdtem megijedni...

samba-4.4.14 -- Már kezdtem megijedni, hogy csak úgy ukk-mukk-fukk lefordul, de szerencsére megállt itt: [2342/3334] Compiling source3/smbd/open.c



../source3/smbd/open.c: In function 'non_widelink_open':
../source3/smbd/open.c:560:11: error: 'O_NOFOLLOW' undeclared (first use in this function)
  flags |= O_NOFOLLOW;
           ^
../source3/smbd/open.c:560:11: note: each undeclared identifier is reported only once for each function it appears in
../source3/smbd/open.c: In function 'fd_open':
../source3/smbd/open.c:634:12: error: 'O_NOFOLLOW' undeclared (first use in this function)
   flags |= O_NOFOLLOW;
            ^
Waf: Leaving directory `/usr/local/src/samba-4.4.14/bin'
Build failed:  -> task failed (err #1): 
        {task: cc open.c -> open_63.o}

Ez lenne az:


       O_NOFOLLOW
              If pathname is a symbolic link, then the open fails.  This is  a
              FreeBSD  extension, which was added to Linux in version 2.1.126.
              Symbolic links in earlier components of the pathname will  still
              be followed.  See also O_PATH below.

Szerk: 7.x-ben már van...


fcntl.h:#define _FCLREAD        0x02000000
fcntl.h:/* Currently as all 32 bits were used by _F flags, O_CLOEXEC and O_NOFOLLOW was defined as 64 bit.
fcntl.h: * Open function takes int as parameter hence we can't use 64bit O_CLOEXEC and O_NOFOLLOW for open.
fcntl.h: * O_CLOEXEC and _FCLREAD to define O_NOFOLLOW as there is no corresponding O_ flag for _FDEFERIND and _FCLREAD.
fcntl.h:#define O_NOFOLLOW      _FCLREAD        /* do not follow symlinks       */
fcntl.h:#define FCLREAD         _FCLREAD        /* clustered read (temporary)   */
fcntl.h:#define FNOWRBEHIND     _FCLREAD        /* do not write behind optimize */

Ez kell hozzá:


open64x(char *, int64_t, mode_t, ext_t);

Hozzászólások

Így elsőre azt mondanám, hogy az "igazi" open a source3/modules/vfs_default_c:vfswrap_open-ben van, esetleg ott lehetne O_NOFOLLOW ügyben maszt... mesterkedni.

Szerk: google szerint
From: Jeremy Allison
Date: Thu, 15 Dec 2016 12:52:13 -0800
Subject: [PATCH 10/13] CVE-2017-2619: s3: smbd: Remove O_NOFOLLOW guards. We
insist on O_NOFOLLOW existing.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12496

Az érdekesség kedvéért megemlítem. hogy a samba configure-je már rá is csapott a házibarkács libutil.so-ra... Na , kiváncsi leszek, mi lesz belőle...