Public bug reported:

here is example from getrlimit(2):

#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>

#define errExit(msg)                                do { perror(msg); 
exit(EXIT_FAILURE); \
} while (0)

int
main(int argc, char *argv[])
{
    struct rlimit old, new;
    struct rlimit *newp;
    pid_t pid;

    if (!(argc == 2 || argc == 4)) {
        fprintf(stderr, "Usage: %s <pid> [<new-soft-limit> "
                "<new-hard-limit>]\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    pid = atoi(argv[1]);        /* PID of target process */

    newp = NULL;
    if (argc == 4) {
        new.rlim_cur = atoi(argv[2]);
        new.rlim_max = atoi(argv[3]);
        newp = &new;
    }

    /* Set CPU time limit of target process; retrieve and display
       previous limit */

    if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)
        errExit("prlimit-1");
    printf("Previous limits: soft=%lld; hard=%lld\n",
            (long long) old.rlim_cur, (long long) old.rlim_max);

    /* Retrieve and display new CPU time limit */

    if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)
        errExit("prlimit-2");
    printf("New limits: soft=%lld; hard=%lld\n",
            (long long) old.rlim_cur, (long long) old.rlim_max);

    exit(EXIT_FAILURE);
}

As you can see, this program will always exit with EXIT_FAILURE status.
It will be clearer and more correct to replace last line with
"exit(EXIT_SUCCESS);"

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: manpages-dev 4.04-2
ProcVersionSignature: Ubuntu 4.4.0-47.68-generic 4.4.24
Uname: Linux 4.4.0-47-generic x86_64
NonfreeKernelModules: kpatch_livepatch_Ubuntu_4_4_0_47_68_generic_15 
kpatch_livepatch_Ubuntu_4_4_0_47_68_generic_14
ApportVersion: 2.20.1-0ubuntu2.4
Architecture: amd64
Date: Mon Dec 26 20:06:31 2016
Dependencies: manpages 4.04-2
InstallationDate: Installed on 2016-09-29 (87 days ago)
InstallationMedia: Ubuntu 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
PackageArchitecture: all
SourcePackage: manpages
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: manpages (Ubuntu)
     Importance: Undecided
         Status: Invalid


** Tags: amd64 apport-bug xenial

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1652652

Title:
  mistake in example in getrlimit(2)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/manpages/+bug/1652652/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to