diff --git a/bin/ln/ln.c b/bin/ln/ln.c index ccae31d43ac..0b0b46ba7fa 100644 --- a/bin/ln/ln.c +++ b/bin/ln/ln.c @@ -189,7 +189,12 @@ linkit(const char *target, const char *source, int isdir) p = target; else ++p; - (void)snprintf(path, sizeof(path), "%s/%s", source, p); + if (snprintf(path, sizeof(path), "%s/%s", source, p) >= + sizeof(path)) { + errno = ENAMETOOLONG; + warn("%s", target); + return (1); + } source = path; }