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


Groups > comp.lang.c > #17726

Re: strncpy and 'n'

Message-ID <4F431A89.7DDD@mindspring.com> (permalink)
Date 2012-02-20 23:16 -0500
From pete <pfiland@mindspring.com>
Organization PF
Newsgroups comp.lang.c
Subject Re: strncpy and 'n'
References <58d7c42a-7fd9-4507-bbe6-88941700b88a@k6g2000vbz.googlegroups.com> <lnvcn6fyi2.fsf@nuthaus.mib.org> <jhrkl9$g1h$1@reader1.panix.com> <lnboouef7m.fsf@nuthaus.mib.org> <jhujta$m7f$1@dont-email.me>

Show all headers | View raw


Shao Miller wrote:
 
> My impression is that in:
> 
>    char foo[] = "foo";
>    char bar[3] = "bar";
>    char baz[10] = "baz";
> 
> each of these could be roughly equivalent to:
> 
>    char foo[sizeof "foo"];
>    char bar[3];
>    char baz[10];
> 
>    strncat(foo, "foo", sizeof "foo");
>    strncat(bar, "bar", 3);
>    strncat(foo, "baz", 10);

ITYM strncat(baz, "baz", 10);

foo, bar and baz 
would each have to be initialized with a null byte 
in order to properly use strncat on them like that.

But, even if bar[3] had static duration
and so was initialized with a null byte,
    strncat(bar, "bar", 3);
writes 4 characters and overruns the array.


n1570
7.24.3.2 The strncat function
Synopsis
    1 #include <string.h>
      char *strncat(char * restrict s1, 
              const char * restrict s2, size_t n);
Description
    2 The strncat function appends not more than n characters
      (a null character and characters that follow it are not appended) 
      from the array pointed to by s2 to the end of the string
      pointed to by s1. 
      The initial character of s2 overwrites the null character 
      at the end of s1. 
      A terminating null character is always appended to the result.

-- 
pete

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


Thread

strncpy and 'n' nroberts <roberts.noah@gmail.com> - 2012-02-16 09:05 -0800
  Re: strncpy and 'n' Anders Wegge Keller <wegge@wegge.dk> - 2012-02-16 18:57 +0100
    Re: strncpy and 'n' "A. K." <akk@nospam.org> - 2012-02-16 19:27 +0100
      Re: strncpy and 'n' Anders Wegge Keller <wegge@wegge.dk> - 2012-02-16 19:34 +0100
        Re: strncpy and 'n' "A. K." <akk@nospam.org> - 2012-02-16 20:58 +0100
  Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-16 10:01 -0800
    Re: strncpy and 'n' Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-16 11:10 -0800
      Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-16 14:20 -0800
        Re: strncpy and 'n' Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-17 04:19 -0800
          Re: strncpy and 'n' James Kuyper <jameskuyper@verizon.net> - 2012-02-17 10:04 -0500
            Re: strncpy and 'n' Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-17 10:27 -0800
            Re: strncpy and 'n' Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-17 11:22 -0800
              Re: strncpy and 'n' James Kuyper <jameskuyper@verizon.net> - 2012-02-17 14:40 -0500
                Re: strncpy and 'n' Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-18 02:17 -0800
    Re: strncpy and 'n' jgk@panix.com (Joe keane) - 2012-02-19 20:04 +0000
      Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-19 12:33 -0800
        Re: strncpy and 'n' jgk@panix.com (Joe keane) - 2012-02-20 21:25 +0000
          Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-20 14:46 -0800
            Re: strncpy and 'n' Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-23 23:13 +0000
              Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-23 16:20 -0800
              Re: strncpy and 'n' Philip Lantz <prl@canterey.us> - 2012-02-25 00:26 -0800
              Re: strncpy and 'n' pacman@kosh.dhis.org (Alan Curry) - 2012-02-26 01:34 +0000
                Re: strncpy and 'n' Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-28 22:46 +0000
                Re: strncpy and 'n' jgk@panix.com (Joe keane) - 2012-03-01 00:03 +0000
                Re: strncpy and 'n' Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-03-01 12:03 +0000
          Re: strncpy and 'n' James Kuyper <jameskuyper@verizon.net> - 2012-02-20 17:51 -0500
        Re: strncpy and 'n' Shao Miller <sha0.miller@gmail.com> - 2012-02-20 18:14 -0500
          Re: strncpy and 'n' pete <pfiland@mindspring.com> - 2012-02-20 23:16 -0500
            Re: strncpy and 'n' Shao Miller <sha0.miller@gmail.com> - 2012-02-25 01:51 -0500
              Re: strncpy and 'n' pete <pfiland@mindspring.com> - 2012-02-25 10:34 -0500
        Re: strncpy and 'n' Rich Webb <bbew.ar@mapson.nozirev.ten> - 2012-02-20 19:09 -0500
          Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-20 16:46 -0800
            Re: strncpy and 'n' Rich Webb <bbew.ar@mapson.nozirev.ten> - 2012-02-20 20:48 -0500
          Re: strncpy and 'n' Shao Miller <sha0.miller@gmail.com> - 2012-02-20 19:46 -0500
        Re: strncpy and 'n' jgk@panix.com (Joe keane) - 2012-02-21 21:46 +0000
          Re: strncpy and 'n' James Kuyper <jameskuyper@verizon.net> - 2012-02-21 17:15 -0500
          Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-21 14:29 -0800
            Re: strncpy and 'n' Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-02-22 01:15 -0800
            Re: strncpy and 'n' jgk@panix.com (Joe keane) - 2012-02-23 00:02 +0000
              Re: strncpy and 'n' Keith Thompson <kst-u@mib.org> - 2012-02-22 17:02 -0800
  Re: strncpy and 'n' Markus Schaub <usenet@markus-schaub.de> - 2012-02-16 18:53 +0000
  Re: strncpy and 'n' lawrence.jones@siemens.com - 2012-02-16 13:25 -0500
  Re: strncpy and 'n' blp@cs.stanford.edu (Ben Pfaff) - 2012-02-16 11:18 -0800
  Re: strncpy and 'n' Stephen Sprunk <stephen@sprunk.org> - 2012-02-16 13:29 -0600
    Re: strncpy and 'n' Ike Naar <ike@iceland.freeshell.org> - 2012-02-16 22:45 +0000
  Re: strncpy and 'n' ImpalerCore <jadill33@gmail.com> - 2012-02-16 11:32 -0800
  Re: strncpy and 'n' Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-02-17 00:50 -0800

csiph-web