Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1356998 - syscalls: readdir_r() is deprecated in newer glibc
Summary: syscalls: readdir_r() is deprecated in newer glibc
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: unclassified
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kaleb KEITHLEY
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-07-15 13:04 UTC by Kaleb KEITHLEY
Modified: 2016-12-06 05:12 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-12-06 05:12:42 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)
full compile output with deprecated warnings (deleted)
2016-07-15 13:36 UTC, Kaleb KEITHLEY
no flags Details

Description Kaleb KEITHLEY 2016-07-15 13:04:34 UTC
Description of problem:

In glibc-2.23 on Fedora 25/rawhide (glibc-2.23.90), the readdir_r() function is marked as deprecated and compiler warnings are emitted while compiling.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Kaleb KEITHLEY 2016-07-15 13:36:39 UTC
Created attachment 1180163 [details]
full compile output with deprecated warnings

Comment 2 Vijay Bellur 2016-07-15 13:38:56 UTC
REVIEW: http://review.gluster.org/14838 (core: use readdir(3) with glibc, and associated cleanup) posted (#9) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)

Comment 3 Vijay Bellur 2016-07-15 17:40:06 UTC
REVIEW: http://review.gluster.org/14838 (core: use readdir(3) with glibc, and associated cleanup) posted (#10) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)

Comment 4 Vijay Bellur 2016-07-17 11:22:16 UTC
REVIEW: http://review.gluster.org/14838 (core: use readdir(3) with glibc, and associated cleanup) posted (#11) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)

Comment 5 Vijay Bellur 2016-07-18 11:59:46 UTC
COMMIT: http://review.gluster.org/14838 committed in master by Jeff Darcy (jdarcy@redhat.com) 
------
commit 561746080b0b7154bfb3bdee20d426cf2ef7db17
Author: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Date:   Thu Jul 7 08:51:08 2016 -0400

    core: use readdir(3) with glibc, and associated cleanup
    
    Starting with glibc-2.23 (i.e. what's in Fedora 25), readdir_r(3)
    is marked as deprecated. Specifically the function decl in <dirent.h>
    has the deprecated attribute, and now warnings are thrown during the
    compile on Fedora 25 builds.
    
    The readdir(_r)(3) man page (on Fedora 25 at least) and World+Dog say
    that glibc's readdir(3) is, and always has been, MT-SAFE as long as
    only one thread is accessing the directory object returned by opendir().
    World+Dog also says there is a potential buffer overflow in readdir_r().
    World+Dog suggests that it is preferable to simply use readdir(). There's
    an implication that eventually readdir_r(3) will be removed from glibc.
    POSIX has, apparently deprecated it in the standard, or even removed it
    entirely.
    
    Over and above that, our source near the various uses of readdir(_r)(3)
    has a few unsafe uses of strcpy()+strcat().
    
    (AFAIK nobody has looked at the readdir(3) implemenation in *BSD to see
    if the same is true on those platforms, and we can't be sure of MacOS
    even though we know it's based on *BSD.)
    
    Change-Id: I5481f18ba1eebe7ee177895eecc9a80a71b60568
    BUG: 1356998
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
    Reviewed-on: http://review.gluster.org/14838
    Smoke: Gluster Build System <jenkins@build.gluster.org>
    Reviewed-by: Niels de Vos <ndevos@redhat.com>
    CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
    NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
    Reviewed-by: Kotresh HR <khiremat@redhat.com>
    Reviewed-by: Jeff Darcy <jdarcy@redhat.com>


Note You need to log in before you can comment on or make changes to this bug.