summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2026-05-23 05:08:50 +0200
committerMikael Magnusson <mikachu@gmail.com>2026-05-25 07:05:10 +0200
commit80f30feb7822aa9976b72201d1bf21f52a970796 (patch)
treee604fccd4ff67e8228d23174bf8297eebfabeaec
parent54594: fix two very similar coverity issues (diff)
downloadzsh-80f30feb7822aa9976b72201d1bf21f52a970796.tar
zsh-80f30feb7822aa9976b72201d1bf21f52a970796.tar.gz
zsh-80f30feb7822aa9976b72201d1bf21f52a970796.tar.bz2
zsh-80f30feb7822aa9976b72201d1bf21f52a970796.tar.lz
zsh-80f30feb7822aa9976b72201d1bf21f52a970796.tar.xz
zsh-80f30feb7822aa9976b72201d1bf21f52a970796.tar.zst
zsh-80f30feb7822aa9976b72201d1bf21f52a970796.zip
54595: overflow check in isreallycom
-rw-r--r--ChangeLog2
-rw-r--r--Src/exec.c10
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index fc5c72299..b30c676a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2026-05-25 Mikael Magnusson <mikachu@gmail.com>
+ * 54595: Src/exec.c: overflow check in isreallycom
+
* 54594: Src/exec.c: fix two very similar coverity issues
* 54593: Src/Zle/compmatch.c: fix two edge cases in join_strs
diff --git a/Src/exec.c b/Src/exec.c
index cff688a2a..6c2ae8624 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1006,13 +1006,15 @@ isreallycom(Cmdnam cn)
char fullnam[MAXCMDLEN];
if (cn->node.flags & HASHED)
- strcpy(fullnam, cn->u.cmd);
+ if (snprintf(fullnam, sizeof(fullnam), "%s", cn->u.cmd)
+ >= (int)sizeof(fullnam))
+ return 0;
else if (!cn->u.name)
return 0;
else {
- strcpy(fullnam, *(cn->u.name));
- strcat(fullnam, "/");
- strcat(fullnam, cn->node.nam);
+ if (snprintf(fullnam, sizeof(fullnam), "%s/%s",
+ *(cn->u.name), cn->node.nam) >= (int)sizeof(fullnam))
+ return 0;
}
return iscom(fullnam);
}