linux-man.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r@public.gmane.org
To: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [Bug 13569] New: Examples in some pages make invalid use of the assert macro
Date: Thu, 18 Jun 2009 15:10:26 GMT	[thread overview]
Message-ID: <bug-13569-11311@http.bugzilla.kernel.org/> (raw)

http://bugzilla.kernel.org/show_bug.cgi?id=13569

           Summary: Examples in some pages make invalid use of the assert
                    macro
           Product: Documentation
           Version: unspecified
    Kernel Version: n/a
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: man-pages
        AssignedTo: documentation_man-pages-ztI5WcYan/vQLgFONoPN62D2FQJk+8+b@public.gmane.org
        ReportedBy: andrey.vihrov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
        Regression: No


The purpose of the assert macro, defined in <assert.h>, is to provide a tool to
check for programming mistakes or program logic errors. However, the assert
macro must never be used to perform checks for run time errors, since, with the
NDEBUG macro defined, expressions within the assert macro invocations are not
evaluated/checked for, resulting in behavior that was not originally intended.

Currently (man-pages 3.20, Gentoo Linux), some pages contain example programs
that use assert to check for run time errors, specifically, like this:

#include <assert.h>

int main (int argc, char *argv[])
{
    assert(argc == 2); /* Check for argc value was intended */
}

The proper way to do this is without assert, for example, like this:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
    if (argc != 2)
    {
        fprintf(stderr, "invalid parameter count\n");
        exit(EXIT_FAILURE);       
    }
}

The pages affected in the core package are

execve(2)
pipe(2)
tee(2)
fmemopen(3)
mq_notify(3)
qsort(3)

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2009-06-18 15:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-18 15:10 bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r [this message]
     [not found] ` <bug-13569-11311-V0hAGp6uBxO456/isadD/XN4h3HLQggn@public.gmane.org/>
2009-09-15  4:38   ` [Bug 13569] Examples in some pages make invalid use of the assert macro bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-13569-11311@http.bugzilla.kernel.org/ \
    --to=bugzilla-daemon-590eeb7gvniway/ihj7yzeb+6bgklq7r@public.gmane.org \
    --cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).