Actions
Feature #13997
closedWant memrchr in libc
Start date:
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
Description
glibc, musl, and the BSDs all have a function memrchr()
which is basically a memchr in reverse in libc. As a bunch of software wants this, we should add a version here. Third-party software expects this. For example, this was seen recently with cgit.
Related issues
Updated by Robert Mustacchi 10 months ago
To test this I wrote a small test suite and ran the libc test suite as both a privileged and unprivileged user:
rm@turin:/var/tmp$ /opt/libc-tests/bin/libctest sudo: a password is required Warning: user 'root' cannot use passwordless sudo. Not adding Test '/opt/libc-tests/tests/random/inz_mlock' to this run. sudo: a password is required Warning: user 'root' cannot use passwordless sudo. Not adding Test '/opt/libc-tests/tests/random/arc4key.ksh' to this run. sudo: a password is required Warning: user 'root' cannot use passwordless sudo. Not adding Test '/opt/libc-tests/tests/pthread_attr_get_np' to this run. Test: /opt/libc-tests/tests/aligned_alloc.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/aligned_alloc.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_threads.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_threads.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_tss.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_tss.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/call_once.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/call_once.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/catopen (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/endian.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/endian.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/env-7076.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/env-7076.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/fnmatch.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/fnmatch.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/fpround_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/i18n/bindtextdomain_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/memchr.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/memchr.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/memset_s.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/memset_s.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/newlocale_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/nl_langinfo_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/posix_memalign.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/posix_memalign.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/printf-6961.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/printf-9511.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/printf-9511.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/priv_gettext (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/psignal (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/qsort/qsort_test (run as rm) [00:02] [PASS] Test: /opt/libc-tests/tests/quick_exit (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_fork (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_forkall (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_forksig (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_prefork (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_preforkall (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_preforksig (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/chacha (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/getentropy (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/getrandom (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_child (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_inval (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_region (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_split (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_split_vpp (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_vpp (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/regex/regex_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/select/select.sh (run as rm) [00:06] [PASS] Test: /opt/libc-tests/tests/set_constraint_handler_s.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/set_constraint_handler_s.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fileno.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fileno.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fmemopentest.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fmemopentest.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftell_ungetc.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftell_ungetc.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftello_12768.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftello_12768.lfs (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream_reopen.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream_reopen.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/open_memstreamtest.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/open_memstreamtest.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/orientation_test.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/orientation_test.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/test_mbrtowc.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/test_mbrtowc.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.32 (run as rm) [00:01] [PASS] Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/strerror (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/thread_name (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/timespec_get.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/timespec_get.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/uchar.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/uchar.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/utimes.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/utimes.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7344.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7344.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7350.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7350.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp.32 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp.64 (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsrtombs_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/wctype_test (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/setup (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/assert_h (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/ctype_h (run as rm) [00:21] [PASS] Test: /opt/libc-tests/tests/symbols/dirent_h (run as rm) [00:04] [PASS] Test: /opt/libc-tests/tests/symbols/fcntl_h (run as rm) [00:13] [PASS] Test: /opt/libc-tests/tests/symbols/locale_h (run as rm) [00:11] [PASS] Test: /opt/libc-tests/tests/symbols/math_h (run as rm) [00:03] [PASS] Test: /opt/libc-tests/tests/symbols/netdb_h (run as rm) [00:01] [PASS] Test: /opt/libc-tests/tests/symbols/pthread_h (run as rm) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/signal_h (run as rm) [00:01] [PASS] Test: /opt/libc-tests/tests/symbols/stdalign_h (run as rm) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/stddef_h (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/stdio_h (run as rm) [00:13] [PASS] Test: /opt/libc-tests/tests/symbols/stdlib_h (run as rm) [00:12] [PASS] Test: /opt/libc-tests/tests/symbols/stdnoreturn_h (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/string_h (run as rm) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/strings_h (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/sys_stat_h (run as rm) [00:06] [PASS] Test: /opt/libc-tests/tests/symbols/sys_time_h (run as rm) [00:03] [PASS] Test: /opt/libc-tests/tests/symbols/sys_timeb_h (run as rm) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/time_h (run as rm) [00:01] [PASS] Test: /opt/libc-tests/tests/symbols/threads_h (run as rm) [00:25] [PASS] Test: /opt/libc-tests/tests/symbols/ucontext_h (run as rm) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/unistd_h (run as rm) [00:17] [PASS] Test: /opt/libc-tests/tests/symbols/wchar_h (run as rm) [00:09] [PASS] Test: /opt/libc-tests/tests/symbols/wctype_h (run as rm) [00:22] [PASS] Results Summary PASS 114 Running Time: 00:03:17 Percent passed: 100.0% Log directory: /var/tmp/test_results/20210809T162722 rm@turin:/var/tmp$ pfexec /opt/libc-tests/bin/libctest Test: /opt/libc-tests/tests/aligned_alloc.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/aligned_alloc.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_threads.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_threads.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_tss.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/c11_tss.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/call_once.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/call_once.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/catopen (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/endian.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/endian.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/env-7076.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/env-7076.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/fnmatch.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/fnmatch.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/fpround_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/i18n/bindtextdomain_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/memchr.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/memchr.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/memset_s.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/memset_s.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/newlocale_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/nl_langinfo_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/posix_memalign.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/posix_memalign.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/printf-6961.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/printf-9511.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/printf-9511.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/priv_gettext (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/psignal (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/pthread_attr_get_np (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/qsort/qsort_test (run as root) [00:02] [PASS] Test: /opt/libc-tests/tests/quick_exit (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4key.ksh (run as root) [00:01] [PASS] Test: /opt/libc-tests/tests/random/arc4random (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_fork (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_forkall (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_forksig (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_prefork (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_preforkall (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/arc4random_preforksig (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/chacha (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/getentropy (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/getrandom (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_child (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_inval (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_mlock (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_region (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_split (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_split_vpp (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/random/inz_vpp (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/regex/regex_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/select/select.sh (run as root) [00:07] [PASS] Test: /opt/libc-tests/tests/set_constraint_handler_s.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/set_constraint_handler_s.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fileno.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fileno.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fmemopentest.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/fmemopentest.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftell_ungetc.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftell_ungetc.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftello_12768.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/ftello_12768.lfs (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream_reopen.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/memstream_reopen.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/open_memstreamtest.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/open_memstreamtest.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/orientation_test.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/orientation_test.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/test_mbrtowc.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/stdio/test_mbrtowc.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.32 (run as root) [00:01] [PASS] Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/strerror (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/thread_name (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/timespec_get.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/timespec_get.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/uchar.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/uchar.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/utimes.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/utimes.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7344.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7344.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7350.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp-7350.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp.32 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsncasecmp.64 (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wcsrtombs_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/wctype_test (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/setup (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/assert_h (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/ctype_h (run as root) [00:24] [PASS] Test: /opt/libc-tests/tests/symbols/dirent_h (run as root) [00:05] [PASS] Test: /opt/libc-tests/tests/symbols/fcntl_h (run as root) [00:14] [PASS] Test: /opt/libc-tests/tests/symbols/locale_h (run as root) [00:10] [PASS] Test: /opt/libc-tests/tests/symbols/math_h (run as root) [00:03] [PASS] Test: /opt/libc-tests/tests/symbols/netdb_h (run as root) [00:01] [PASS] Test: /opt/libc-tests/tests/symbols/pthread_h (run as root) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/signal_h (run as root) [00:01] [PASS] Test: /opt/libc-tests/tests/symbols/stdalign_h (run as root) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/stddef_h (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/stdio_h (run as root) [00:13] [PASS] Test: /opt/libc-tests/tests/symbols/stdlib_h (run as root) [00:13] [PASS] Test: /opt/libc-tests/tests/symbols/stdnoreturn_h (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/string_h (run as root) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/strings_h (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/sys_stat_h (run as root) [00:06] [PASS] Test: /opt/libc-tests/tests/symbols/sys_time_h (run as root) [00:03] [PASS] Test: /opt/libc-tests/tests/symbols/sys_timeb_h (run as root) [00:00] [PASS] Test: /opt/libc-tests/tests/symbols/time_h (run as root) [00:01] [PASS] Test: /opt/libc-tests/tests/symbols/threads_h (run as root) [00:26] [PASS] Test: /opt/libc-tests/tests/symbols/ucontext_h (run as root) [00:02] [PASS] Test: /opt/libc-tests/tests/symbols/unistd_h (run as root) [00:19] [PASS] Test: /opt/libc-tests/tests/symbols/wchar_h (run as root) [00:10] [PASS] Test: /opt/libc-tests/tests/symbols/wctype_h (run as root) [00:25] [PASS] Results Summary PASS 117 Running Time: 00:03:33 Percent passed: 100.0% Log directory: /var/tmp/test_results/20210809T163644
Updated by Robert Mustacchi 9 months ago
I also ran the util-tests as just a good sanity check and they all passed.
Updated by Electric Monk 9 months ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit d6bf170859287b7b5b26419e266a7e6fdee7ff4d
commit d6bf170859287b7b5b26419e266a7e6fdee7ff4d Author: Robert Mustacchi <rm@fingolfin.org> Date: 2021-08-20T15:14:13.000Z 13997 Want memrchr in libc Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Reviewed by: Andy Fiddaman <andy@omnios.org> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
Updated by Andy Fiddaman 4 months ago
- Related to Bug #14428: formatting issues in memory(3c) man page added
Actions