The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Dan Cross <crossd@gmail.com>
To: Paul Winalski <paul.winalski@gmail.com>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] reviving a bit of WWB
Date: Mon, 21 Sep 2020 15:56:19 -0400	[thread overview]
Message-ID: <CAEoi9W6+9FOtOuAwvQioQ93g3cw3ZCVG0FQWzh_Eg-CPTacFRg@mail.gmail.com> (raw)
In-Reply-To: <CABH=_VQFOcF95Px9pcSib-PTE3b853HRO1Uyvk7gPrfA=B3tcw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1452 bytes --]

On Mon, Sep 21, 2020 at 2:40 PM Paul Winalski <paul.winalski@gmail.com>
wrote:

> VAX/VMS was the first operating system I encountered where 0 was not a
> valid program address.  As was mentioned previously, address space on
> early machines was too precious to throw away a whole page of it just
> to catch bad null pointer references.
>
> I once saw a C program that depended on 0 being a valid pointer
> address, and on a 0x00 byte being at memory address 0.  The program
> had a bunch of char* pointers that were used in a printf() call,
> something like:
>
> printf("%s%s%s%s\n", a, b, c, d);
>
> If you didn't want, say, the third string printed, you assigned NULL
> to variable c.  That caused c to point to location 0, and printf()
> interpreted the 0 byte as the empty string "".
>
> It was hell getting this program to work on the VAX.


That sounds annoying, but not necessarily insurmountable? I imagine you
could wrap it in something like:

void
print4(char *a, char *b, char *c, char *d)
{
        if (a == NULL) a = "";
        if (b == NULL) b = "";
        if (c == NULL) c = "";
        if (d == NULL) d = "";
        printf("%s%s%s%s\n", a, b, c, d);
}

?

I guess if it was more complex than that, like say being variadic, it'd be
really annoying because you'd have to walk the arguments and accumulate
them and assign pointers to empty strings as appropriate, or just wrap
printf and interpret the format string.

        - Dan C.

[-- Attachment #2: Type: text/html, Size: 2339 bytes --]

  reply	other threads:[~2020-09-21 19:57 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-20 23:00 Norman Wilson
2020-09-20 23:53 ` Clem Cole
2020-09-21  0:00   ` Clem Cole
2020-09-21  2:24     ` John Cowan
2020-09-21  0:09   ` Warner Losh
2020-09-21  1:05     ` Clem Cole
2020-09-21  5:55     ` Steve Nickolas
2020-09-21  5:59       ` Warner Losh
2020-09-21 18:40         ` Paul Winalski
2020-09-21 19:56           ` Dan Cross [this message]
2020-09-21 20:50       ` John Cowan
2020-09-21 21:22         ` Rob Pike
2020-09-21 21:57           ` Clem Cole
2020-09-21 23:56             ` John Cowan
2020-09-22  0:54               ` Richard Salz
2020-09-21 21:39         ` Steve Nickolas
  -- strict thread matches above, loose matches on Subject: below --
2020-09-25 14:19 Doug McIlroy
2020-09-28 17:35 ` Angelo Papenhoff
2020-09-20 22:51 Norman Wilson
2020-09-19  1:51 Doug McIlroy
2020-09-20 18:42 ` arnold
2020-09-20 19:28   ` Will Senn
2020-09-20 20:12     ` Steve Nickolas
2020-09-20 20:26       ` Doug McIlroy
2020-09-20 20:57         ` Doug McIlroy
2020-09-20 22:13           ` Clem Cole
2020-09-21 20:43             ` Steffen Nurpmeso
2020-09-20 20:58         ` Steve Nickolas
2020-09-20 21:33           ` Brantley Coile
2020-10-07  5:43             ` scj
2020-09-20 21:35           ` John Cowan
2021-02-02 23:08             ` Greg A. Woods
2021-02-02 23:47               ` Larry McVoy
2021-02-03  0:11                 ` Dave Horsfall
2021-02-03  0:19                   ` Larry McVoy
2021-02-03  2:04                     ` Richard Salz
2021-02-03  3:32                       ` Dave Horsfall
2021-02-03  4:32                         ` M Douglas McIlroy
2021-02-03 11:27                           ` Peter Jeremy via TUHS
2021-02-03 20:09                             ` Dave Horsfall
2021-02-03 20:13                               ` Niklas Karlsson
2021-02-03 23:46                               ` Tom Lyon
2021-02-03 22:19                           ` Dave Horsfall
2021-02-03 22:55                             ` M Douglas McIlroy
2020-09-20 22:15           ` Clem Cole
2020-09-20 22:47             ` John Cowan
2020-09-21 20:48               ` Steffen Nurpmeso
2020-09-21 20:46           ` Steffen Nurpmeso
2020-09-24  2:25       ` Dave Horsfall
2020-09-24  2:33         ` Clem Cole
2020-09-27  5:54           ` Dave Horsfall
2020-09-24 17:19         ` Paul Winalski
2020-09-24 18:17           ` John Cowan
2020-10-07  5:47   ` scj
2020-10-07  9:20     ` arnold
2020-10-08  0:27     ` Dave Horsfall
2020-10-08  3:08       ` John Cowan

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=CAEoi9W6+9FOtOuAwvQioQ93g3cw3ZCVG0FQWzh_Eg-CPTacFRg@mail.gmail.com \
    --to=crossd@gmail.com \
    --cc=paul.winalski@gmail.com \
    --cc=tuhs@tuhs.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).