Safer use of basename()
This commit is contained in:
parent
247a2c39a5
commit
9fa0e397ee
|
@ -389,7 +389,7 @@ static int _copy_multiple(Copy * copy, char const * src, char const * dst)
|
||||||
char * q;
|
char * q;
|
||||||
|
|
||||||
if((p = strdup(src)) == NULL)
|
if((p = strdup(src)) == NULL)
|
||||||
return 1;
|
return _copy_error(copy, src, 1);
|
||||||
to = basename(p);
|
to = basename(p);
|
||||||
len = strlen(src + strlen(to) + 2);
|
len = strlen(src + strlen(to) + 2);
|
||||||
if((q = malloc(len * sizeof(char))) == NULL)
|
if((q = malloc(len * sizeof(char))) == NULL)
|
||||||
|
|
17
src/move.c
17
src/move.c
|
@ -389,14 +389,21 @@ static int _move_multiple(Move * move, char const * src, char const * dst)
|
||||||
char * to;
|
char * to;
|
||||||
size_t len;
|
size_t len;
|
||||||
char * p;
|
char * p;
|
||||||
|
char * q;
|
||||||
|
|
||||||
to = basename(src); /* XXX src is const */
|
if((p = strdup(src)) == NULL)
|
||||||
len = strlen(src + strlen(to) + 2);
|
|
||||||
if((p = malloc(len * sizeof(char))) == NULL)
|
|
||||||
return _move_error(move, src, 1);
|
return _move_error(move, src, 1);
|
||||||
sprintf(p, "%s/%s", dst, to);
|
to = basename(p);
|
||||||
ret = _move_single(move, src, p);
|
len = strlen(src + strlen(to) + 2);
|
||||||
|
if((q = malloc(len * sizeof(char))) == NULL)
|
||||||
|
{
|
||||||
|
free(p);
|
||||||
|
return _move_error(move, src, 1);
|
||||||
|
}
|
||||||
|
sprintf(q, "%s/%s", dst, to);
|
||||||
|
ret = _move_single(move, src, q);
|
||||||
free(p);
|
free(p);
|
||||||
|
free(q);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user