From: Lukáš Jiřiště Date: Sun, 9 Jun 2024 17:51:12 +0000 (+0200) Subject: Add additional check for database format X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;ds=inline;p=railnation_calc.git Add additional check for database format --- diff --git a/src/load.c b/src/load.c index d6f0eaa..58d589e 100644 --- a/src/load.c +++ b/src/load.c @@ -68,6 +68,18 @@ static int process_upgrade(char **split_line, t_vec *catalog) return (5); } +size_t split_size(char **split_line) +{ + size_t res; + + if (!split_line) + return (0); + res = 0; + while (split_line[res]) + ++res; + return (res); +} + static int process_line(const char *line, t_vec *catalog, unsigned short era) { char **split_line; @@ -80,11 +92,11 @@ static int process_line(const char *line, t_vec *catalog, unsigned short era) return (1); if (!ft_strcmp(split_line[1], "passengers") || !ft_strcmp(split_line[1], "cargo")) { - if (process_train(split_line, catalog, era)) + if (split_size(split_line) < 9 || process_train(split_line, catalog, era)) ft_dprintf(STDERR_FILENO, "Error loading train %s!\n", split_line[0]); } else if (ft_strcmp(split_line[1], "coupling")) - if (process_upgrade(split_line, catalog)) + if (split_size(split_line) < 9 || process_upgrade(split_line, catalog)) ft_dprintf(STDERR_FILENO, "Error loading upgrade %s for train %s!\n", split_line[0], split_line[1]); i = 0; while (split_line[i]) @@ -110,6 +122,7 @@ t_vec load_catalog(char const *database_file_name) era = 0; while (line) { + line[ft_strlen(line) - 1] = '\0'; if (line[0] != ';') era = ft_atoi(line); else