summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouie <lshprung@yahoo.com>2021-08-01 13:36:48 -0700
committerlouie <lshprung@yahoo.com>2021-08-01 13:36:48 -0700
commit77798c73c5ce16ef355436816514d703dfc84464 (patch)
tree8f84cb43840b8cb5fcc00425fe866190ea7d99e8
parentadc0e1599ba2d5859f306424b864541869028708 (diff)
Fixed invalid config path crash
-rw-r--r--draw.c6
-rw-r--r--include/read_cfg.h2
-rw-r--r--read_cfg.c10
-rw-r--r--tasklist.md4
4 files changed, 15 insertions, 7 deletions
diff --git a/draw.c b/draw.c
index a66dc3b..daba27e 100644
--- a/draw.c
+++ b/draw.c
@@ -61,7 +61,11 @@ int main(int argc, char **argv){
if(!flags_set[0]) strcpy(cfg_path, find_config()); //find_config if not config flag was passed
//Fill Groups
- cfg_interp(cfg_path); //read the contents of the cfg file
+ //read the contents of the cfg file; print help message if invalid
+ if(!cfg_interp(cfg_path)){
+ print_help(argv[0]);
+ return 0;
+ }
//Remove Empty Groups from the Array
clean_groups();
diff --git a/include/read_cfg.h b/include/read_cfg.h
index 6b0c276..b6b996f 100644
--- a/include/read_cfg.h
+++ b/include/read_cfg.h
@@ -3,7 +3,7 @@
#define BUF_LEN 1024
-void cfg_interp(char *path);
+bool cfg_interp(char *path);
bool get_sort();
bool get_case_sensitivity();
void refer_to_doc();
diff --git a/read_cfg.c b/read_cfg.c
index 61ddce1..77c4381 100644
--- a/read_cfg.c
+++ b/read_cfg.c
@@ -32,7 +32,8 @@ bool hr = false;
//turn foldCase (insensitive case searching) on or off; On by default
bool fold_case = true;
-void cfg_interp(char *path){
+//return false if invalid path
+bool cfg_interp(char *path){
FILE *fp;
char buffer[BUF_LEN];
GROUP **g;
@@ -43,7 +44,10 @@ void cfg_interp(char *path){
int j;
fp = fopen(path, "r");
- assert(fp != NULL);
+ if(fp == NULL){
+ printf("Error: Invalid Configuration Path \"%s\"\n", path);
+ return false;
+ }
//build the options array
char **options = malloc(sizeof(char *) * OPTION_CNT);
@@ -87,7 +91,7 @@ void cfg_interp(char *path){
*/
fclose(fp);
- return;
+ return true;
}
bool get_sort(){
diff --git a/tasklist.md b/tasklist.md
index c7e884d..14a7ea1 100644
--- a/tasklist.md
+++ b/tasklist.md
@@ -2,12 +2,12 @@
## FIXME
-- **If giving invalid config path for -c|--cfg\_path flag, program crashes**
- - Should give a formal error message
- **On Windows, running without alias option turned on in cfg causes instability**
### Completed
+- If giving invalid config path for -c|--cfg\_path flag, program crashes
+
---
## TODO