aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/remembering.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/remembering.c b/src/remembering.c
index 95f08ef..f61ff01 100644
--- a/src/remembering.c
+++ b/src/remembering.c
@@ -253,11 +253,12 @@ static void rankings_test() {
{
testing("struct Rankings expands its size when needed");
struct Rankings *r = rankings_new();
+ if (!r) {
+ exit(EXIT_FAILURE);
+ }
size_t some_limit = RANKINGS_INITIAL_SIZE + 1;
int ret;
for (size_t i = 0; i < some_limit; i++) {
- ret = rankings_insert(r, strdup("some string"), i);
- /*
char *s = strdup("some string");
ret = rankings_insert(r, s, i);
if (ret) {
@@ -265,7 +266,6 @@ static void rankings_test() {
rankings_free(r);
exit(EXIT_FAILURE);
}
- */
}
assert(r->size == RANKINGS_INITIAL_SIZE * RANKINGS_GROWTH_MULTIPLIER);
@@ -278,6 +278,9 @@ static void rankings_test() {
{
testing("an empty Rankings doesn't leak");
struct Rankings *r = rankings_new();
+ if (!r) {
+ exit(EXIT_FAILURE);
+ }
assert(r->size == RANKINGS_INITIAL_SIZE);
assert(r->count == 0);
@@ -300,13 +303,17 @@ int parse_ranked_line(FILE *stream, const char *entry, char **value,
}
int rank_strlen = value_substr - entry;
- char *rank_str = malloc(rank_strlen + 1);
- strncpy(rank_str, entry, rank_strlen);
- rank_str[rank_strlen] = '\0';
+ char *rank_str = strndup(entry, rank_strlen);
+ if (!rank_str) {
+ return -1;
+ }
*rank = atoi(rank_str);
free(rank_str);
*value = malloc(strlen(value_substr) + 1);
+ if (!*value) {
+ return -1;
+ }
strcpy(*value, entry + (rank_strlen + 1 /* RANKING_DELIMITER */));
return 0;
@@ -599,7 +606,7 @@ int main(int argc, char *argv[]) {
int ret;
char *command;
char *profile;
- if (ret = get_options(argc, argv, &command, &profile)) {
+ if ((ret = get_options(argc, argv, &command, &profile))) {
goto err;
expand_profile_name("oijoI");
}