summaryrefslogtreecommitdiffstats
path: root/Changes
blob: 962c1a5d9e564120758013789c2e641bb8f30aaf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
==================== Changes in man-pages-3.80 ====================

Released: ????-??-??, Munich


Contributors
------------

The following people contributed patches/fixes or (noted in brackets
in the changelog below) reports, notes, and ideas that have been
incorporated in changes in this release:

Akihiro Motoki <amotoki@gmail.com>
Andy Lutomirski <luto@amacapital.net>
Bill McConnaughey <mcconnau@biochem.wustl.edu>
Chris Mayo <aklhfex@gmail.com>
Christophe Blaess <Christophe@blaess.fr>
David Wilson <dw@botanicus.net>
Denys Vlasenko <dvlasenk@redhat.com>
Doug Goldstein <cardoe@gentoo.org>
Eric Wong <normalperson@yhbt.net>
Heinrich Schuchardt <xypron.glpk@gmx.de>
J William Piggott <elseifthen@gmx.com>
James Hunt <james.hunt@ubuntu.com>
Jan Chaloupka <jchaloup@redhat.com>
Jan Stancek <jstancek@redhat.com>
Jeff Layton <jlayton@poochiereds.net>
Jens Thoms Toerring <jt@toerring.de>
Kevin Easton <kevin@guarana.org>
Luke Faraone <lfaraone@debian.org>
Mark Seaborn <mseaborn@chromium.org>
Mathieu Malaterre <malat@debian.org>
Michael Kerrisk <mtk.manpages@gmail.com>
Michal Hocko <mhocko@suse.cz>
Minchan Kim <minchan@kernel.org>
Patrick Horgan <phorgan1@gmail.com>
Peng Haitao <penght@cn.fujitsu.com>
Ralf Baechle <ralf@linux-mips.org>
Rob Somers <uberkermit@gmail.com>
Simon Paillard <spaillard@debian.org>
Stephen Smalley <sds@tycho.nsa.gov>
Tao Ma <tao.ma@oracle.com>
Tobias Herzke <tobias.linuxpatches.2014@gi2.herzkes.de>
Vince Weaver <vincent.weaver@maine.edu>
Vlastimil Babka <vbabka@suse.cz>
Zbigniew BrzeziƄski <zbigniew.brzezinski@student.put.poznan.pl>

Apologies if I missed anyone!


New and rewritten pages
-----------------------

ioctl_fat.2
    Heinrich Schuchardt  [Michael Kerrisk]
        New man page for the ioctl(2) FAT API
            The ioctl(2) system call may be used to retrieve information about
            the FAT file system and to set file attributes.

madvise.2
    Michael Kerrisk
         Summary: this page has been significantly reorganised and rewritten
    Michael Kerrisk
        Recast discussion of 'advice' into two groups of values
            madvise() is one of those system calls that has congealed over
            time, as has the man page. It's helpful to split the discussion
            of 'advice' into those flags into two groups:

            * Those flags that are (1) widespread across implementations;
              (2) have counterparts in posix_madvise(3); and (3) were present
              in the initial Linux madvise implementation.
            * The rest, which are values that (1) may not have counterparts
              in other implementations; (2) have no counterparts in
              posix_madvise(3); and (3) were added to Linux in more recent
              times.
    Michael Kerrisk
        Explicitly list the five flags provided by posix_fadvise()
            Over time, bit rot has afflicted this page. Since the original
            text was written many new Linux-specific flags have been added.
            So, now it's better to explicitly list the flags that
            correspond to the POSIX analog of madvise().
    Jan Chaloupka  [Hugh Dickins, Michael Kerrisk]
        Starting with Linux 3.5, more file systems support MADV_REMOVE
    Michael Kerrisk
        Split EINVAL error into separate cases
    Michael Kerrisk
        Explain MADV_REMOVE in terms of file hole punching
    Michael Kerrisk
        MADV_REMOVE can be applied only to shared writable mappings
    Michael Kerrisk
        MADV_REMOVE cannot be applied to locked or Huge TLB pages
    Michael Kerrisk  [Vlastimil Babka]
        Clarify that MADV_DONTNEED has effect on pages only if it succeeds
    Michael Kerrisk  [Vlastimil Babka]
        Clarifications for MADV_DONTNEED
    Michael Kerrisk  [Michal Hocko]
        Improve MADV_DONTNEED description
    Michael Kerrisk
        MADV_DONTNEED cannot be applied to Huge TLB or locked pages
    Michael Kerrisk  [Vlastimil Babka]
        Remove mention of "shared pages" as a cause of EINVAL for MADV_DONTNEED
    Michael Kerrisk  [Vlastimil Babka]
        Note Huge TLB as a cause of EINVAL for MADV_DONTNEED
    Michael Kerrisk  [Minchan Kim]
        Add mention of VM_PFNMAP in discussion of MADV_DONTNEED and MADV_REMOVE
    Michael Kerrisk
        Drop sentence saying that kernel may ignore 'advice'
            The sentence creates misunderstandings, and does not really
            add information.
    Michael Kerrisk
        Note that some Linux-specific 'advice' change memory-access semantics
    Michael Kerrisk
        NOTES: Remove crufty text about "command" versus "advice"
            The point made in this fairly ancient text is more or less evident
            from the DESCRIPTION, and it's not clear what "standard" is being
            referred to.
    Michael Kerrisk
        Mention POSIX.1-2008 addition of POSIX_MADV_NOREUSE
    Michael Kerrisk
        Remove "POSIX.1b" from CONFORMING TO
    Michael Kerrisk
        Move mention of posix_fadvise() from CONFORMING TO to SEE ALSO
    Michael Kerrisk
        ERRORS: add EPERM error case for MADV_HWPOISON
    Michael Kerrisk
        Note that madvise() is nonstandard, but widespread


Newly documented interfaces in existing pages
---------------------------------------------

proc.5
    Michael Kerrisk
        (Briefly) document /proc/PID/attr/socketcreate
    Michael Kerrisk
        (Briefly) document /proc/PID/attr/keycreate
    Michael Kerrisk  [Stephen Smalley]
        Document /proc/PID/attr/{current,exec,fscreate,prev}
            Heavily based on Stephen Smalley's text in
                https://lwn.net/Articles/28222/
                From:    Stephen Smalley <sds@epoch.ncsc.mil>
                To:      LKML and others
                Subject: [RFC][PATCH] Process Attribute API for Security Modules
                Date:    08 Apr 2003 16:17:52 -0400
    Michael Kerrisk
        Document /proc/sys/kernel/auto_msgmni

socket.7
    David Wilson
        Document SO_REUSEPORT socket option


New and changed links
---------------------

get_thread_area.2
    Andy Lutomirski
        Make get_thread_area.2 a link to rewritten set_thread_area.2 page


Changes to individual pages
---------------------------

time.1
    Michael Kerrisk
        Make option argument formatting consistent with other pages

access.2
    Denys Vlasenko
        Explain how access() check treats capabilities
            We have users who are terribly confused why their binaries
            with CAP_DAC_OVERRIDE capability see EACCESS from access() calls,
            but are able to read the file.

            The reason is access() isn't the "can I read/write/execute this
            file?" question, it is the "(assuming that I'm a setuid binary,)
            can *the user who invoked me* read/write/execute this file?"
            question.

            That's why it uses real UIDs as documented, and why it ignores
            capabilities when capability-endorsed binaries are run by non-root
            (this patch adds this information).

            To make users more likely to notice this less-known detail,
            the patch expands the explanation with rationale for this logic
            into a separate paragraph.

arch_prctl.2
set_thread_area.2
get_thread_area.2
    Andy Lutomirski
        Improve TLS documentation
            The documentation for set_thread_area was very vague.  This
            improves it, accounts for recent kernel changes, and merges
            it with get_thread_area.2.

            get_thread_area.2 now becomes a link.

            While I'm at it, clarify the related arch_prctl.2 man page.

cacheflush.2
    Ralf Baechle
        Update some portability details and bugs
    Michael Kerrisk
        Refer reader to BUGS in discussion of EINVAL error

capget.2
    Michael Kerrisk
        Document V3 capabilities constants
    Michael Kerrisk
        Rewrite discussion of kernel versions that support file capabilities
            File capabilities ceased to be optional in Linux 2.6.33.

clone.2
    Peng Haitao
        Fix description of CLONE_PARENT_SETTID
            CLONE_PARENT_SETTID only stores child thread ID in parent memory.

clone.2
execve.2
    Kevin Easton
        Document interaction of execve(2) with CLONE_FILES
            This patch the fact that a successful execve(2) in a process that
            is sharing a file descriptor table results in unsharing the table.

            I discovered this through testing and verified it by source
            inspection - there is a call to unshare_files() early in
            do_execve_common().

fcntl.2
    Michael Kerrisk  [Jeff Layton]
        Clarify cases of conflict between traditional record and OFD locks
            Verified by experiment on Linux 3.15 and 3.19rc4.

fork.2
    Michal Hocko
        EAGAIN is not reported when task allocation fails
            I am not sure why we have:

               "EAGAIN fork() cannot allocate sufficient memory to copy
                the parent's page tables and allocate a task structure
                or the child."

            The text seems to be there from the time when man-pages
            were moved to git so there is no history for it.

            And it doesn't reflect reality: the kernel reports both
            dup_task_struct and dup_mm failures as ENOMEM to the
            userspace. This seems to be the case from early 2.x times
            so let's simply remove this part.
    Heinrich Schuchardt
        Child and parent run in separate memory spaces
            fork.2 should clearly point out that child and parent
            process run in separate memory spaces.
    Michael Kerrisk
        NOTES: add "C library/kernel ABI differences" subheading

getpid.2
    Michael Kerrisk
        NOTES: add "C library/kernel ABI differences" subheading

getxattr.2
    Michael Kerrisk
        Various rewordings plus one or two details clarified
    Michael Kerrisk
        Add pointer to example in listxattr(2)

killpg.2
    Michael Kerrisk
        NOTES: add "C library/kernel ABI differences" subheading

listxattr.2
    Heinrich Schuchardt
        Provide example program
    Michael Kerrisk
        Reword discussion of size==0 case
    Michael Kerrisk
        Add note on handling increases in sizes of keys or values
    Michael Kerrisk
        Remove mention of which filesystems implement ACLs
            Such a list will only become outdated (as it already was).

migrate_pages.2
    Jan Stancek
        Document EFAULT and EINVAL errors
            I encountered these errors while writing testcase for migrate_pages
            syscall for LTP (Linux test project).

            I checked stable kernel tree 3.5 to see which paths return these.
            Both can be returned from get_nodes(), which is called from:
            SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
                            const unsigned long __user *, old_nodes,
                            const unsigned long __user *, new_nodes)

            The testcase does following:
            EFAULT
            a) old_nodes/new_nodes is area mmaped with PROT_NONE
            b) old_nodes/new_nodes is area not mmapped in process address
               space, -1 or area that has been just munmmaped

            EINVAL
            a) maxnodes overflows kernel limit
            b) new_nodes contain node, which has no memory or does not exist
               or is not returned for get_mempolicy(MPOL_F_MEMS_ALLOWED).

modify_ldt.2
    Andy Lutomirski
        Overhaul the documentation
            This clarifies the behavior and documents all four functions.
    Andy Lutomirski
        Clarify the lm bit's behavior
            The lm bit should never have existed in the first place.  Sigh.

mprotect.2
    Mark Seaborn
        Mention effect of READ_IMPLIES_EXEC personality flag
            I puzzled over mprotect()'s effect on /proc/*/maps for a while
            yesterday -- it was setting "x" without PROT_EXEC being specified.
            Here is a patch to add some explanation.

msgget.2
    Michael Kerrisk
        Add details of MSGMNI default value

msgop.2
    Michael Kerrisk
        Clarify wording of MSGMAX and MSGMNB limits

perf_event_open.2
    Vince Weaver
        Clarify PERF_EVENT_IOC_REFRESH behavior
            Currently the PERF_EVENT_IOC_REFRESH ioctl, when applied to a group
            leader, will refresh all children.  Also if a refresh value of 0
            is chosen then the refresh becomes infinite (never runs out).
            Back in 2011 PAPI was relying on these behaviors but I was told
            that both were unsupported and subject to being removed at any time.
            (See https://lkml.org/lkml/2011/5/24/337 )
            However the behavior has not been changed.

            This patch updates the manpage to still list the behavior as
            unsupported, but removes the inaccurate description of it
            only being a problem with 2.6 kernels.

prctl.2
    Michael Kerrisk  [Bill McConnaughey]
        Mention file capabilities in discussion of PR_SET_DUMPABLE
    Michael Kerrisk
        Greatly expand discussion of "dumpable" flag
            In particular, detail the interactions with
            /proc/sys/fs/suid_dumpable.
    Michael Kerrisk
        Reorder paragraphs describing PR_SET_DUMPABLE
    Michael Kerrisk
        Mention SUID_DUMP_DISABLE and SUID_DUMP_USER under PR_SET_DUMPABLE
    Michael Kerrisk
        Executing a file with capabilities also resets the parent death signal

ptrace.2
    James Hunt
        Explain behaviour should ptrace tracer call execve(2)
            This behaviour was verified by reading the kernel source and
            confirming the behaviour using a test program.
    Denys Vlasenko
        Add information on PTRACE_SEIZE versus PTRACE_ATTACH differences
            Extend description of PTRACE_SEIZE with the short summary of its
            differences from PTRACE_ATTACH.

            The following paragraph:

            PTRACE_EVENT_STOP
                   Stop induced by PTRACE_INTERRUPT command, or group-stop, or ini-
                   tial  ptrace-stop when a new child is attached (only if attached
                   using PTRACE_SEIZE), or PTRACE_EVENT_STOP if PTRACE_SEIZE was used.

            has an editing error (the part after last comma makes no sense).
            Removing it.

            Mention that legacy post-execve SIGTRAP is disabled by PTRACE_SEIZE.

sched_setattr.2
    Michael Kerrisk  [Christophe Blaess]
        SYNOPSIS: remove 'const' from 'attr' sched_getattr() argument

semget.2
    Michael Kerrisk
        Note default value for SEMMNI and SEMMSL

semop.2
    Michael Kerrisk
        Note defaults for SEMOPM and warn against increasing > 1000

sendfile.2
    Eric Wong
        Caution against modifying sent pages

setxattr.2
    Michael Kerrisk
        ERRORS: add ENOTSUP for invalid namespace prefix
    Michael Kerrisk
        Remove redundant text under ENOTSUP error
    Michael Kerrisk
        Note that zero-length attribute values are permitted
    Michael Kerrisk
        Rework text describing 'flags' argument

stat.2
    Michael Kerrisk
        NOTES: add "C library/kernel ABI differences" subheading

statfs.2
    Michael Kerrisk  [Jan Chaloupka]
        Document the 'f_flags' field added in Linux 2.6.36
    Michael Kerrisk
        Clarify that 'statfs' structure has some padding bytes
            The number of padding bytes has changed over tyme, as some
            bytes are used, so describe this aspect of the structure
            less explicitly.
    Tao Ma
        Add OCFS2_SUPER_MAGIC
    Michael Kerrisk
        Use __fsword_t in statfs structure definition
            This more closely matches modern glibc reality.
    Michael Kerrisk
        Add a note on the __fsword_t type
    Michael Kerrisk
        Document 'f_spare' more vaguely

wait.2
    Michael Kerrisk
        Note that waitpid() is a wrapper for wait4()
    Michael Kerrisk
        Note that wait() is a library function implemented via wait4()

wait4.2
    Michael Kerrisk
        NOTES: add "C library/kernel ABI differences" subheading

encrypt.3
    Rob Somers
        Improve code example
            I (and some others) found that the original example code
            did not seem to work as advertised.  The new code (used by
            permission of the original author, Jens Thoms Toerring)
            was found on comp.os.linux.development.

mktemp.3
    Luke Faraone
        DESCRIPTION reference to BUGS corrected
            mktemp(3)'s DESCRIPTION referenced NOTES, but no such
            section exists. Corrected to refer to BUGS.

pthread_attr_setschedparam.3
    Tobias Herzke
        Describe EINVAL in ERRORS

resolver.3
host.conf.5
    Simon Paillard
        host.conf 'order' option deprecated, replaced by nsswitch.conf(5)
            http://www.sourceware.org/bugzilla/show_bug.cgi?id=2389
            http://repo.or.cz/w/glibc.git/commit/b9c65d0902e5890c4f025b574725154032f8120a

            Reported at http://bugs.debian.org/270368,
            http://bugs.debian.org/396633, and http://bugs.debian.org/344233.

statvfs.3
    Michael Kerrisk
        Document missing 'f_flag' bit values
            And reorganize information relating to which flags are in
            POSIX.1.
    Michael Kerrisk  [Jan Chaloupka]
        statvfs() now populates 'f_flag' from  statfs()'s f_flag field
            These changes came with glibc 2.13, and the kernel's addition of
            a 'f_flags' field in Linux 2.6.36.

syslog.3
    Michael Kerrisk  [Doug Goldstein]
        Remove unneeded <stdarg.h>
            vsyslog() does not need this.

tzset.3
    J William Piggott
        Add offset format
            tzset.3 does not illustrate the POSIX offset format.
            Specifically, there is no indication in the manual
            what the optional components of it are.

random.4
    Michael Kerrisk
        Note maximum number of bytes returned by read(2) on /dev/random
    Michael Kerrisk  [Mathieu Malaterre]
        Since Linux 3.16, reads from /dev/urandom return at most 32 MB
            See https://bugs.debian.org/775328 and
            https://bugzilla.kernel.org/show_bug.cgi?id=80981#c9

core.5
    Michael Kerrisk  [Bill McConnaughey]
        Executing a file that has capabilities also prevents core dumps
    Michael Kerrisk
        Document "%i" and "%I" core_pattern specifiers

intro.5
    Michael Kerrisk
        Remove words "and protocols"
            There are no protocol descriptions in Section 5. Protocols are
            in Section 7.

proc.5
    Michael Kerrisk
        Add reference to prctl(2) in discussion of /proc/sys/fs/suid_dumpable
            And note that /proc/sys/fs/suid_dumpable defines the
            value assigned to the process "dumpable" flag in certain
            circumstances.
    Michael Kerrisk
        Note that CAP_SYS_ADMIN is required to list /proc/PID/map_files
            This might however change in the future; see the Jan 2015 LKML thread:

                    Re: [RFC][PATCH v2] procfs: Always expose /proc/<pid>/map_files/
                                        and make it readable

resolv.conf.5
    Michael Kerrisk
        SEE ALSO: add nsswitch.conf(5)

capabilities.7
    Michael Kerrisk
        Mention SECBIT_KEEP_CAPS as an alternative to prctl() PR_SET_KEEPCAPS
    Chris Mayo
        NOTES: add last kernel versions for obsolete options
            The CONFIG_SECURITY_CAPABILITIES option was removed by
            commit 5915eb53861c5776cfec33ca4fcc1fd20d66dd27

            The CONFIG_SECURITY_FILE_CAPABILITIES option removed in
            Linux 2.6.33 as already mentioned in DESCRIPTION.

pthreads.7
    Michael Kerrisk
        SEE ALSO: add fork(2)

socket.7
    Michael Kerrisk
        Add some details for SO_REUSEPORT

unix.7
    Jan Chaloupka
        Mention SOCK_STREAM socket for ioctl_type of ioctl()
            from https://bugzilla.redhat.com/show_bug.cgi?id=1110401.

            unix.7 is not clear about socket type of ioctl_type argument of
            ioctl() function. The description of SIOCINQ is applicable only
            for SOCK_STREAM socket. For SOCK_DGRAM, udp(7) man page gives
            correct description of SIOCINQ

ldconfig.8
    Michael Kerrisk
        Place options in alphabetical order
    Michael Kerrisk
        Note glibc version number for '-l' option
    Michael Kerrisk
        Document -c/--format option
    Michael Kerrisk
        Add long form of some options
    Michael Kerrisk  [Patrick Horgan]
        ld.so.conf uses only newlines as delimiters
            mtk: confirmed by reading source of parse_conf() in
            elf/ldconfig.c.
    Michael Kerrisk
        Document -V/--version option
    Michael Kerrisk
        Document -i/--ignore-aux-cache option

ld.so.8
    Michael Kerrisk
        Relocate "Hardware capabilities" to be a subsection under notes
            This is more consistent with standard man-pages headings
            and layout.
    Michael Kerrisk
        (Briefly) document LD_TRACE_PRELINKING
    Michael Kerrisk
        Remove duplicate description of LD_BIND_NOT