On Sun, Oct 18, 2009 at 12:32 PM, Laszlo Papp <djszapi@archlinux.us> wrote:
On Sun, Oct 18, 2009 at 12:03 PM, Xavier <shiningxc@gmail.com> wrote:
On Sun, Oct 18, 2009 at 6:04 AM, Laszlo Papp <djszapi2@gmail.com> wrote:
* Size examined str* function usage is a common coding practice, because it's more safer to avoid breakage while using str*
functions.
Signed-off-by: Laszlo Papp <djszapi@archlinux.us> --- lib/libalpm/util.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index 553591d..41a5783 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -105,7 +105,7 @@ int _alpm_makepath_mode(const char *path, mode_t
mode)
/* we have another path component- append the
newest component to
* existing string and create one more level of
dir structure */
strcat(incr, "/"); - strcat(incr, ptr); + strncat(incr, ptr, strlen(ptr)); if(access(incr, F_OK)) { if(mkdir(incr, mode)) { ret = 1;
This is useless too. These two are equivalent, so we might as well go for the simpler one.
Xavier, you're right!
But in this mode, it's more safer/better to handle strncat.
sdst = sizeof(dst)-strlen(dst)-1;
ssrc = sizeof(src)
n = (sdst < ssrc ? sdst : ssrc) ; strncat (dst, src , n); dst[strlen(dst)+n] = '\0';
Best Regards, Laszlo Papp
The previous is buggy, but I hope this one can work, opinion ? sdst = sizeof(dst)-strlen(dst)-1; strncat (dst, src , sdst) Best Regards, Laszlo Papp