Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #149226

Re: C String terminator

From Manfred <noname@add.invalid>
Newsgroups comp.lang.c
Subject Re: C String terminator
Date 2020-01-17 18:43 +0100
Organization Aioe.org NNTP Server
Message-ID <qvsrol$10f5$1@gioia.aioe.org> (permalink)
References <qvktc8$gvf$1@dont-email.me> <303beb4a-dd99-4dbd-bbb7-eb8a07632526@googlegroups.com> <87imlcimc8.fsf@nosuchdomain.example.com> <874kwwf9cs.fsf@bsb.me.uk>

Show all headers | View raw


On 1/16/2020 3:01 AM, Ben Bacarisse wrote:
>> printf() and other C string handling functions have undefined behavior
>> if passed a pointer that doesn't point to a string.
> To be a bit picky...  Given
> 
>    char a[3] = "foo", b[3] = "bar";  // neither is null-terminated.
> 
> a call like
> 
>    strncmp(a, b, sizeof a)
>   
> is not undefined even though the standard calls strncmp a string
> handling function.  The description takes care to talk about character
> arrays, though.
> 
> Calls like
> 
>    strcmp(a, b)
>    strchr(a, 'o')
>    strspn(b, "abc")
> 
> would, from an operational point of view, seem to be well-defined as the
> presence of a null is not obviously needed, but the function
> descriptions say the pointers should point to strings.  Are they
> undefined calls?

Since the standard requires these functions to be called with (null 
terminated) strings, I would say that these are formally UB calls, even 
if any sane implementation will give the correct result (which also 
falls within the category of UB).
It might seem even more disturbing considering that if a and b are 
static strings an optimizing compiler is likely to optimize out the call 
itself.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

C String terminator T <T@invalid.invalid> - 2020-01-14 09:22 -0800
  Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-14 09:32 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-14 09:43 -0800
      Re: C String terminator Bart <bc@freeuk.com> - 2020-01-14 17:53 +0000
        Re: C String terminator David Brown <david.brown@hesbynett.no> - 2020-01-14 20:17 +0100
          Re: C String terminator Bart <bc@freeuk.com> - 2020-01-14 20:01 +0000
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-14 09:57 -0800
        Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-14 11:37 -0800
          Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:02 -0800
            Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:38 -0800
              Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:53 -0800
        Re: C String terminator Manfred <noname@add.invalid> - 2020-01-14 20:48 +0100
    Re: C String terminator chad <cdalten@gmail.com> - 2020-01-15 05:43 -0800
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-15 07:12 -0800
      Re: C String terminator Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-15 15:35 +0000
        Re: C String terminator chad <cdalten@gmail.com> - 2020-01-19 06:20 -0800
    Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 10:52 -0800
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-15 12:52 -0800
        Re: C String terminator gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-15 20:56 +0000
        Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 02:17 +0000
        Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 21:54 -0800
          Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-16 02:07 -0800
            Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-16 02:45 -0800
              Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-16 08:21 -0700
                Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-16 08:03 -0800
              Re: C String terminator John Bode <jfbode1029@gmail.com> - 2020-01-16 09:06 -0800
              Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-16 11:29 -0800
      Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 02:01 +0000
        Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-15 23:02 -0500
        Re: C String terminator David Brown <david.brown@hesbynett.no> - 2020-01-16 11:15 +0100
          Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 13:07 +0000
        Re: C String terminator Manfred <noname@add.invalid> - 2020-01-17 18:43 +0100
          Re: C String terminator Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-21 04:00 -0800
          Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-21 05:00 -0800
  Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-14 12:36 -0700
    Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-14 12:05 -0800
      Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-14 13:54 -0700
        Re: C String terminator James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-14 15:03 -0800
          Re: C String terminator Thiago Adams <thiago.adams@gmail.com> - 2020-01-15 04:55 -0800
            Re: C String terminator Guillaume <message@bottle.org> - 2020-01-15 20:49 +0100
              Re: C String terminator Thiago Adams <thiago.adams@gmail.com> - 2020-01-15 12:55 -0800
        Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-14 21:31 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:28 -0800
      Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:38 -0800
        Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-15 10:50 -0700
          Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:17 -0800
        Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:53 -0800
  Re: C String terminator Richard Damon <Richard@Damon-Family.org> - 2020-01-14 21:43 -0500
  Re: C String terminator "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2020-01-14 22:52 -0800
    Re: C String terminator "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2020-01-14 22:54 -0800
  Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 02:00 -0800
    Re: C String terminator gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-15 10:47 +0000
      Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-15 03:02 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:19 -0800
      Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 11:33 -0800
        Re: C String terminator T <T@invalid.invalid> - 2020-01-15 12:03 -0800
          Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 01:30 +0000
            Re: C String terminator T <T@invalid.invalid> - 2020-01-15 18:17 -0800
              Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 03:44 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-15 20:33 -0800
          Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-16 02:26 -0800
  Re: C String terminator Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-15 15:11 +0000
    Re: C String terminator T <T@invalid.invalid> - 2020-01-15 09:32 -0800
      Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 10:47 -0800
        Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:58 -0800
          Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 01:39 +0000
            Re: C String terminator T <T@invalid.invalid> - 2020-01-15 18:27 -0800
              Re: C String terminator T <T@invalid.invalid> - 2020-01-15 19:03 -0800
              Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 03:28 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-15 19:33 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-15 19:38 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 13:31 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 09:09 -0800
                Re: C String terminator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2020-01-16 10:27 -0700
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 10:54 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 20:59 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 14:11 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 20:17 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 14:14 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 23:45 +0000
                Yes, Ben makes house calls (Was: C String terminator) gazelle@shell.xmission.com (Kenny McCormack) - 2020-01-16 23:57 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 11:28 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-17 20:46 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 12:48 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 12:54 -0800
                Re: C String terminator Bart <bc@freeuk.com> - 2020-01-17 21:02 +0000
                Re: C String terminator Bart <bc@freeuk.com> - 2020-01-17 21:21 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 13:35 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 13:44 -0800
                Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-17 15:03 -0800
                Re: C String terminator fir <profesor.fir@gmail.com> - 2020-01-17 15:06 -0800
                Re: C String terminator Ike Naar <ike@sdf.lonestar.org> - 2020-01-18 07:30 +0000
                Re: C String terminator Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-01-17 16:06 -0500
                Re: C String terminator Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-01-17 16:23 -0500
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 13:37 -0800
                Re: C String terminator Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-21 04:10 -0800
                Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-21 10:41 -0800
                Re: C String terminator Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-01-17 01:55 -0800
                Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-17 09:52 -0800
                Re: C String terminator T <T@invalid.invalid> - 2020-01-17 11:29 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 18:21 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 10:50 -0800
                Re: C String terminator Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-01-16 20:50 +0000
                Re: C String terminator T <T@invalid.invalid> - 2020-01-16 14:17 -0800
  Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-15 09:59 -0800
  Re: C String terminator T <T@invalid.invalid> - 2020-01-15 10:15 -0800
  Re: C String terminator T <T@invalid.invalid> - 2020-01-18 21:42 -0800
    Re: C String terminator T <T@invalid.invalid> - 2020-01-19 22:13 -0800
  Re: C String terminator Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-21 19:49 +0100
  Re: C String terminator John Bode <jfbode1029@gmail.com> - 2020-01-21 15:33 -0800
    Re: C String terminator Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-21 23:19 -0800
    Re: C String terminator Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 08:39 +0100
      Re: C String terminator chad <cdalten@gmail.com> - 2020-01-22 06:59 -0800
        Re: C String terminator Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 18:44 +0100

csiph-web