hush/libbb/concat_path_file.c
Eric Andersen 5a071bcbf2 Avoid a segfault (detected by Fabio Ferrari
<fabio.ferrari@digitro.com.br> in the wget applet) when
concat_path_file() or last_char_is() were fed a NULL.
 -Erik
2001-07-07 04:27:35 +00:00

27 lines
542 B
C

/*
* busybox library eXtendet funcion
*
* concatenate path and file name to new allocation buffer,
* not addition '/' if path name already have '/'
*
*/
#include <string.h>
#include "libbb.h"
extern char *concat_path_file(const char *path, const char *filename)
{
char *outbuf;
char *lc;
if (!path)
path="";
lc = last_char_is(path, '/');
if (filename[0] == '/')
filename++;
outbuf = xmalloc(strlen(path)+strlen(filename)+1+(lc==NULL));
sprintf(outbuf, "%s%s%s", path, (lc==NULL)? "/" : "", filename);
return outbuf;
}