aboutsummaryrefslogtreecommitdiff
path: root/libbb/execable.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/execable.c')
-rw-r--r--libbb/execable.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libbb/execable.c b/libbb/execable.c
index b2ec16713..96ce9bfb8 100644
--- a/libbb/execable.c
+++ b/libbb/execable.c
@@ -18,7 +18,7 @@ int FAST_FUNC execable_file(const char *name)
18 struct stat s; 18 struct stat s;
19 if (ENABLE_PLATFORM_MINGW32) { 19 if (ENABLE_PLATFORM_MINGW32) {
20 int len = strlen(name); 20 int len = strlen(name);
21 return len >= 4 && !strcasecmp(name+len-4, ".exe") && 21 return len > 4 && !strcasecmp(name+len-4, ".exe") &&
22 !stat(name, &s) && S_ISREG(s.st_mode); 22 !stat(name, &s) && S_ISREG(s.st_mode);
23 } 23 }
24 return (!access(name, X_OK) && !stat(name, &s) && S_ISREG(s.st_mode)); 24 return (!access(name, X_OK) && !stat(name, &s) && S_ISREG(s.st_mode));
@@ -59,8 +59,7 @@ char* FAST_FUNC find_execable(const char *filename, char **PATHp)
59 else { 59 else {
60 char *np = xmalloc(len+4+1); 60 char *np = xmalloc(len+4+1);
61 memcpy(np, p, len); 61 memcpy(np, p, len);
62 memcpy(np+len, ".exe", 4); 62 memcpy(np+len, ".exe", 5);
63 np[len+4] = '0';
64 if (execable_file(np)) { 63 if (execable_file(np)) {
65 *PATHp = n; 64 *PATHp = n;
66 return np; 65 return np;