Avoid unneeded memory allocation in xdirname() - noice - small file browser (mi… | |
git clone git://git.codemadness.org/noice | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit fa6b45a96de53621d4e89bd63ee810210712f043 | |
parent e27af6f1dbc804e90a3b98f19afdf1055bab8dc9 | |
Author: sin <[email protected]> | |
Date: Wed, 6 Jan 2016 15:53:04 +0000 | |
Avoid unneeded memory allocation in xdirname() | |
Diffstat: | |
M noice.c | 12 ++++-------- | |
1 file changed, 4 insertions(+), 8 deletions(-) | |
--- | |
diff --git a/noice.c b/noice.c | |
@@ -158,21 +158,17 @@ xstrdup(const char *s) | |
char * | |
xdirname(const char *path) | |
{ | |
- char *p, *tmp; | |
+ char tmp[PATH_MAX], *p; | |
/* Some implementations of dirname(3) may modify `path' and some | |
* return a pointer inside `path' and we cannot free(3) the | |
* original string if we lose track of it. */ | |
- tmp = xstrdup(path); | |
+ strlcpy(tmp, path, sizeof(tmp)); | |
p = dirname(tmp); | |
- if (p == NULL) { | |
- free(tmp); | |
+ if (p == NULL) | |
printerr(1, "dirname"); | |
- } | |
/* Make sure this is a malloc(3)-ed string */ | |
- p = xstrdup(p); | |
- free(tmp); | |
- return p; | |
+ return xstrdup(p); | |
} | |
void |