Skip to content

remove most occurences of strcpy/strcat#4

Open
rofl0r wants to merge 1 commit into
alandekok:masterfrom
rofl0r:strcat
Open

remove most occurences of strcpy/strcat#4
rofl0r wants to merge 1 commit into
alandekok:masterfrom
rofl0r:strcat

Conversation

@rofl0r
Copy link
Copy Markdown

@rofl0r rofl0r commented Jul 5, 2013

those functions are insecure and in the case of strcat even slow,
since the strlen has to be checked on each call.
they are considered a code-smell; instead, snprintf should be used.

snprintf(buf, sizeof buf, "%s", mystring) is the only way offered
by C99 to do a bounds-checked copy of a string (and after parsing
the format string (which should only take a handful of cycles),
performance is identical to a naive strcpy implementation using
a for loop until 0 is hit).

note that strncpy() always fills the entire buffer, so it is a
performance hog.

those functions are insecure and in the case of strcat even slow,
since the strlen has to be checked on each call.
they are considered a code-smell; instead, snprintf should be used.

snprintf(buf, sizeof buf, "%s", mystring) is the only way offered
by C99 to do a bounds-checked copy of a string (and after parsing
the format string (which should only take a handful of cycles),
performance is identical to a naive strcpy implementation using
a for loop until 0 is hit).

note that strncpy() always fills the entire buffer, so it is a
performance hog.
Comment thread jlibtool.c
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note that using size_t is needed whenever dealing with sizes: http://ewontfix.com/9/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant