Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #111835
| From | DFS <nospam@dfs.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: How to determine if file is binary or text? |
| Date | 2017-06-08 12:37 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <ohbubu$o3e$3@dont-email.me> (permalink) |
| References | (7 earlier) <6638cc40-dd84-4f1a-a60f-5860a172f4a8@googlegroups.com> <ohbips$e1a$2@dont-email.me> <slrn3vfsojineq.iqv.ike@iceland.freeshell.org> <ohbsja$h8u$2@dont-email.me> <yJe_A.25216$yi6.19571@fx18.iad> |
On 6/8/2017 12:14 PM, Scott Lurndal wrote:
> DFS <nospam@dfs.com> writes:
>> On 6/8/2017 10:19 AM, Ike Naar wrote:
>>> On 2017-06-08, DFS <nospam@dfs.com> wrote:
>>>> int is_textfile(char *fname)
>>>> {
>>>> //run the GNUWin32 file command
>>>> char psBuffer[128];
>>>> FILE *pPipe;
>>>>
>>>> char cmd[] = {0};
>>>
>>> The array 'cmd' is only 1 byte long.
>>>
>>>> sprintf(cmd,"file %s",fname);
>>>
>>> Yet you try to store (strlen("file ") + strlen(fname) + 1) bytes into it.
>>> That won't fit.
>>
>>
>> It works fine.
>
> No, it doesn't. It corrupts the stack.
>
>>
>> printf("%s\n",cmd) prints 'file filename', and _popen executes it no
>> problem.
>
> You just don't see the corruption _in this particular case_. If the
> stack grew in the other direction (which it does on some processors),
> or if you had declared anything after cmd, you would likely have wiped
> out that data or the return address on the stack.
>
> You should _NEVER_ use sprintf. Instead, use snprintf - e.g.
>
> #define MAXIMUM_COMMAND_LENGTH 512
>
> char cmd[MAXIMUM_COMMAND_LENGTH];
>
> snprintf(cmd, sizeof(cmd), "file %s", file);
>
> And check the return code from snprintf to make sure you
> didn't get truncated output because sizeof(cmd) is less than
> the space required for the given format specifier plus
> argument(s).
Thanks. I just approximated your example and it works fine.
Test:
char cmd[5];
if ((snprintf(cmd,sizeof(cmd),"file %s",fname)) == -1)
{printf("max cmd length insufficient\n");}
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-07 14:40 -0400
Re: How to determine if file is binary or text? GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-06-07 20:46 +0200
Re: How to determine if file is binary or text? bartc <bc@freeuk.com> - 2017-06-07 19:58 +0100
Re: How to determine if file is binary or text? scott@slp53.sl.home (Scott Lurndal) - 2017-06-07 19:05 +0000
Re: How to determine if file is binary or text? supercat@casperkitty.com - 2017-06-07 12:10 -0700
Re: How to determine if file is binary or text? "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-07 16:25 -0400
Re: How to determine if file is binary or text? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-06-07 21:44 +0000
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-07 18:14 -0400
Re: How to determine if file is binary or text? GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-06-08 00:23 +0200
Re: How to determine if file is binary or text? Robert Wessel <robertwessel2@yahoo.com> - 2017-06-08 00:11 -0500
Re: How to determine if file is binary or text? GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-06-08 15:14 +0200
Re: How to determine if file is binary or text? Robert Wessel <robertwessel2@yahoo.com> - 2017-06-08 11:06 -0500
Re: How to determine if file is binary or text? raltbos@xs4all.nl (Richard Bos) - 2017-06-17 18:28 +0000
Re: How to determine if file is binary or text? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-06-07 23:30 +0100
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-07 20:26 -0400
Re: How to determine if file is binary or text? bartc <bc@freeuk.com> - 2017-06-08 01:30 +0100
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-07 23:50 -0400
Re: How to determine if file is binary or text? mark.bluemel@gmail.com - 2017-06-08 02:13 -0700
Re: How to determine if file is binary or text? mark.bluemel@gmail.com - 2017-06-08 04:05 -0700
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-08 09:21 -0400
Re: How to determine if file is binary or text? Ike Naar <ike@iceland.freeshell.org> - 2017-06-08 14:19 +0000
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-08 12:07 -0400
Re: How to determine if file is binary or text? scott@slp53.sl.home (Scott Lurndal) - 2017-06-08 16:14 +0000
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-08 12:37 -0400
Re: How to determine if file is binary or text? scott@slp53.sl.home (Scott Lurndal) - 2017-06-08 16:54 +0000
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-08 13:14 -0400
An old version of what??? (Was: How to determine if file is binary or text?) gazelle@shell.xmission.com (Kenny McCormack) - 2017-06-09 17:13 +0000
Re: How to determine if file is binary or text? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-06-08 11:15 +0100
Re: How to determine if file is binary or text? scott@slp53.sl.home (Scott Lurndal) - 2017-06-08 12:49 +0000
Re: How to determine if file is binary or text? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-06-08 14:01 +0000
Re: How to determine if file is binary or text? Michael Forsythe <forsythe@example.com> - 2017-06-08 15:33 +0000
Re: How to determine if file is binary or text? DFS <nospam@dfs.com> - 2017-06-08 18:43 -0400
Re: How to determine if file is binary or text? jak <please@nospam.tnx> - 2017-06-09 08:46 +0200
Re: How to determine if file is binary or text? "James R. Kuyper" <jameskuyper@verizon.net> - 2017-06-07 19:23 -0400
Re: How to determine if file is binary or text? Barry Schwarz <schwarzb@dqel.com> - 2017-06-07 16:50 -0700
Re: How to determine if file is binary or text? "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-06-08 15:51 +0200
Re: How to determine if file is binary or text? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-06-07 17:17 -0600
Re: How to determine if file is binary or text? Keith Thompson <kst-u@mib.org> - 2017-06-07 19:21 -0700
Re: How to determine if file is binary or text? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-06-07 21:37 -0600
Re: How to determine if file is binary or text? Noob <root@127.0.0.1> - 2017-06-08 08:40 +0200
Re: How to determine if file is binary or text? gordonb.t9rom@burditt.org (Gordon Burditt) - 2017-06-08 12:03 -0500
csiph-web