On Sun, Oct 18, 2009 at 12:32 PM, Laszlo Papp <[email protected]> wrote:
> > > On Sun, Oct 18, 2009 at 12:03 PM, Xavier <[email protected]> wrote: > >> On Sun, Oct 18, 2009 at 6:04 AM, Laszlo Papp <[email protected]> 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 <[email protected]> >> > --- >> > 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
