1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
From: =?utf-8?b?0L3QsNCx?= <nabijaczleweli@nabijaczleweli.xyz>
Date: Fri, 10 Jan 2025 16:23:03 +0100
Subject: Fix segfault if insufficient arguments and some start with '-'
(Closes: #716352)
---
sredird.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sredird.c b/sredird.c
index 33bffbf..d397005 100644
--- a/sredird.c
+++ b/sredird.c
@@ -1879,7 +1879,7 @@ int main(int argc, char * argv[])
}
/* Process optional switch arguments */
- for (argi = 1;argv[argi][0] == '-' && argi < argc;argi++)
+ for (argi = 1;argi < argc && argv[argi][0] == '-';argi++)
{
i = 1;
while (argv[argi][i])
@@ -1906,6 +1906,12 @@ int main(int argc, char * argv[])
}
}
+ if (!(argv[argi] && argv[argi + 1] && argv[argi + 2]))
+ {
+ Usage();
+ return(Error);
+ }
+
/* Sets the log level */
MaxLogLevel = atoi(argv[argi++]);
|