[PATCH 1/1] Disallow argc < 1 (for now just crash)

6 views
Skip to first unread message

Rob Browning

unread,
May 2, 2022, 9:24:49 PM5/2/22
to bup-...@googlegroups.com
Since argc is allowed to be zero, and it's possible that any number of
things haven't been written to handle it, just crash for now if we
encounter it.

cf. https://lwn.net/Articles/882799/

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
---

Pushed.

dev/python.c | 1 +
lib/cmd/bup.c | 2 ++
src/bup/compat.c | 1 +
3 files changed, 4 insertions(+)

diff --git a/dev/python.c b/dev/python.c
index 52acab9a..717b927c 100644
--- a/dev/python.c
+++ b/dev/python.c
@@ -19,5 +19,6 @@

int main(int argc, char **argv)
{
+ assert(argc > 0);
return bup_py_main (argc, argv);
}
diff --git a/lib/cmd/bup.c b/lib/cmd/bup.c
index 66faef1e..482960be 100644
--- a/lib/cmd/bup.c
+++ b/lib/cmd/bup.c
@@ -329,6 +329,7 @@ prepend_lib_to_pythonpath(const char * const exec_path,

int main(int argc, char **argv)
{
+ assert(argc > 0);
prog_argc = argc;
prog_argv = argv;
setup_bup_main_module();
@@ -356,6 +357,7 @@ int main(int argc, char **argv)

int main(int argc, char **argv)
{
+ assert(argc > 0);
prog_argc = argc;
prog_argv = argv;
setup_bup_main_module();
diff --git a/src/bup/compat.c b/src/bup/compat.c
index 2a29c05f..98858ae2 100644
--- a/src/bup/compat.c
+++ b/src/bup/compat.c
@@ -14,6 +14,7 @@

int bup_py_bytes_main(int argc, char **argv)
{
+ assert(argc > 0);
wchar_t **wargv = PyMem_RawMalloc(argc * sizeof(wchar_t *));
if (!wargv)
die(2, "memory insufficient to decode command line arguments");
--
2.30.2

Reply all
Reply to author
Forward
0 new messages