diff options
author | Daniel Santos <dacs.git@brilhante.top> | 2022-03-17 14:24:13 +0000 |
---|---|---|
committer | Daniel Santos <dacs.git@brilhante.top> | 2022-03-17 14:24:13 +0000 |
commit | fd66c372859c42f2dee036df8e5b83bd56934427 (patch) | |
tree | cd4043681379d3a63112d3f4f2f6ffce358ef84c | |
parent | 3d304af497c697fcb7e54fb009839dd08e136970 (diff) | |
download | numericx-c-fd66c372859c42f2dee036df8e5b83bd56934427.tar.gz |
invalid argument list of main() return E2BIG
* If invalid number of arguments supplied to main(), return errno E2BIG * add Makefile rule to test memory leak of wrong number of arguments to main() Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | numericx.c | 5 |
2 files changed, 8 insertions, 4 deletions
diff --git a/Makefile b/Makefile index 51c5a7c..20d4f71 100644 --- a/Makefile +++ b/Makefile @@ -61,9 +61,9 @@ clean: run: decimal-to-earth ./decimal-to-earth 21 -.PHONY: mem mem1 mem2 mem3 +.PHONY: mem mem1 mem2 mem3 mem4 mem: - echo "the memory make rules are: mem1 mem2 mem3" + echo "the memory make rules are: mem1 mem2 mem3 mem4" mem1: decimal-to-earth valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth 999 @@ -74,6 +74,9 @@ mem2: decimal-to-earth mem3: decimal-to-earth valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth abc +mem4: decimal-to-earth + valgrind --leak-check=full --show-leak-kinds=all -s decimal-to-earth 2 3 + decimal-to-earth_test-1: $(DEP) $(CC) $(CFLAGS) -DFROM_NUMERICALS=\"0123456789\" -DFROM_FIRST_NUMBER_VOID -DFROM_INFINITE_BASE -DTO_NUMERICALS=\"12345\" -o $@ $^ diff --git a/numericx.c b/numericx.c index 9b3b8c3..d14fb4c 100644 --- a/numericx.c +++ b/numericx.c @@ -545,8 +545,9 @@ numericx_translate(char* from, bool from_units_on_the_end, bool from_first_numbe * * @param argv[] - one number as a string * - * @return EXIT_SUCCESS in case of a successful number translation + * @return E2BIG in case of wrong number of arguments * @return EXIT_FAILURE in case of unsuccessful number translation + * @return EXIT_SUCCESS in case of a successful number translation */ int main(int argc, char* argv[]) @@ -555,7 +556,7 @@ main(int argc, char* argv[]) if( !(argc == 2) ) { fprintf(stderr, "usage: %s <number>\n", PROG_NAME); - exit(EXIT_FAILURE); + return E2BIG; } /* Number variables to be converted */ |