projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use __VA_ARGS__ for all of error's arguments
[git.git]
/
abspath.c
diff --git
a/abspath.c
b/abspath.c
index f04ac18e33063f7e2cb9ab9eab9a6b86cb089b5a..05f2d7934878a832f5a2efdf4222c16223050853 100644
(file)
--- a/
abspath.c
+++ b/
abspath.c
@@
-35,6
+35,9
@@
const char *real_path(const char *path)
if (path == buf || path == next_buf)
return path;
if (path == buf || path == next_buf)
return path;
+ if (!*path)
+ die("The empty string is not a valid path");
+
if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX)
die ("Too long path: %.*s", 60, path);
if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX)
die ("Too long path: %.*s", 60, path);
@@
-42,8
+45,8
@@
const char *real_path(const char *path)
if (!is_directory(buf)) {
char *last_slash = find_last_dir_sep(buf);
if (last_slash) {
if (!is_directory(buf)) {
char *last_slash = find_last_dir_sep(buf);
if (last_slash) {
- *last_slash = '\0';
last_elem = xstrdup(last_slash + 1);
last_elem = xstrdup(last_slash + 1);
+ last_slash[1] = '\0';
} else {
last_elem = xstrdup(buf);
*buf = '\0';
} else {
last_elem = xstrdup(buf);
*buf = '\0';
@@
-123,7
+126,9
@@
const char *absolute_path(const char *path)
{
static char buf[PATH_MAX + 1];
{
static char buf[PATH_MAX + 1];
- if (is_absolute_path(path)) {
+ if (!*path) {
+ die("The empty string is not a valid path");
+ } else if (is_absolute_path(path)) {
if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX)
die("Too long path: %.*s", 60, path);
} else {
if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX)
die("Too long path: %.*s", 60, path);
} else {