From 12424fb99517dffb1ca3843ee6dd0a67b48ac80b Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Thu, 29 Dec 2022 17:24:37 +0300 Subject: [PATCH] fix(lib): check if got NULL in all functions --- lib/database.c | 6 ++++++ lib/sasa.c | 8 +++++++- lib/tanzaku.c | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/database.c b/lib/database.c index 4589108..707c131 100644 --- a/lib/database.c +++ b/lib/database.c @@ -139,6 +139,9 @@ int tanabata_save(Tanabata *tanabata) { } int tanabata_open(Tanabata *tanabata, const char *path) { + if (path == NULL) { + return 1; + } struct stat st; if (stat(path, &st) != 0 || !S_ISDIR(st.st_mode)) { return 1; @@ -164,6 +167,9 @@ int tanabata_open(Tanabata *tanabata, const char *path) { } int tanabata_dump(Tanabata *tanabata, const char *path) { + if (path == NULL) { + return 1; + } struct stat st; if (stat(path, &st) != 0 || !S_ISDIR(st.st_mode)) { return 1; diff --git a/lib/sasa.c b/lib/sasa.c index 06a40c3..2ca41ba 100644 --- a/lib/sasa.c +++ b/lib/sasa.c @@ -4,7 +4,7 @@ #include "../include/tanabata.h" int tanabata_sasa_add(Tanabata *tanabata, const char *path) { - if (tanabata->sasahyou.size == -1 && tanabata->sasahyou.hole_cnt == 0) { + if (path == NULL || tanabata->sasahyou.size == -1 && tanabata->sasahyou.hole_cnt == 0) { return 1; } Sasa *current_sasa = tanabata->sasahyou.database; @@ -34,6 +34,9 @@ int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id) { } int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) { + if (path == NULL) { + return 1; + } Sasa *current_sasa = tanabata->sasahyou.database; for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, path) == 0) { @@ -56,6 +59,9 @@ Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id) { } Sasa tanabata_sasa_get_by_path(Tanabata *tanabata, const char *path) { + if (path == NULL) { + return HOLE_SASA; + } char *abspath = NULL; abspath = realpath(path, abspath); if (abspath == NULL) { diff --git a/lib/tanzaku.c b/lib/tanzaku.c index 1c1a7db..ec59827 100644 --- a/lib/tanzaku.c +++ b/lib/tanzaku.c @@ -3,7 +3,7 @@ #include "../include/tanabata.h" int tanabata_tanzaku_add(Tanabata *tanabata, const char *name, const char *description) { - if (tanabata->sappyou.size == -1 && tanabata->sappyou.hole_cnt == 0) { + if (name == NULL || description == NULL || tanabata->sappyou.size == -1 && tanabata->sappyou.hole_cnt == 0) { return 1; } Tanzaku *current_tanzaku = tanabata->sappyou.database; @@ -28,6 +28,9 @@ int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id) { } int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name) { + if (name == NULL) { + return 1; + } Tanzaku *current_tanzaku = tanabata->sappyou.database + 1; for (uint64_t i = 1; i < tanabata->sappyou.size; i++) { if (current_tanzaku->id != HOLE_ID && strcmp(current_tanzaku->name, name) == 0) { @@ -50,6 +53,9 @@ Tanzaku tanabata_tanzaku_get_by_id(Tanabata *tanabata, uint64_t tanzaku_id) { } Tanzaku tanabata_tanzaku_get_by_name(Tanabata *tanabata, const char *name) { + if (name == NULL) { + return HOLE_TANZAKU; + } Tanzaku *current_tanzaku = tanabata->sappyou.database; for (uint64_t i = 0; i < tanabata->sappyou.size; i++) { if (current_tanzaku->id != HOLE_ID && strcmp(current_tanzaku->name, name) == 0) {