projects
/
railnation_calc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f09cf15
)
Add additional check for database format
trunk
author
Lukáš Jiřiště
<gymnazium.jiriste@gmail.com>
Sun, 9 Jun 2024 17:51:12 +0000
(19:51 +0200)
committer
Lukáš Jiřiště
<gymnazium.jiriste@gmail.com>
Sun, 9 Jun 2024 17:51:12 +0000
(19:51 +0200)
src/load.c
patch
|
blob
|
history
diff --git
a/src/load.c
b/src/load.c
index d6f0eaa3ec2e142be9ae4d75b0fee89d4550b659..58d589ebb721120df529aa3013076b6abc0472c6 100644
(file)
--- a/
src/load.c
+++ b/
src/load.c
@@
-68,6
+68,18
@@
static int process_upgrade(char **split_line, t_vec *catalog)
return (5);
}
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;
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"))
{
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"))
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])
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)
{
era = 0;
while (line)
{
+ line[ft_strlen(line) - 1] = '\0';
if (line[0] != ';')
era = ft_atoi(line);
else
if (line[0] != ';')
era = ft_atoi(line);
else