mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-15 07:54:33 +00:00
BUG/MINOR: server: check return value of fgets() in apply_server_state()
fgets() can return NULL on error or when EOF occurs. This patch adds a check of fgets() return value and displays a warning if the first line of the server state file can not be read. Additionally, we make sure to close the previously opened file descriptor.
This commit is contained in:
parent
e9544935e8
commit
cf4fb036a4
@ -2330,12 +2330,16 @@ void apply_server_state(void)
|
||||
version = 0;
|
||||
|
||||
/* first character of first line of the file must contain the version of the export */
|
||||
fgets(mybuf, SRV_STATE_LINE_MAXLEN, f);
|
||||
if (fgets(mybuf, SRV_STATE_LINE_MAXLEN, f) == NULL) {
|
||||
Warning("Can't read first line of the server state file '%s'\n", filepath);
|
||||
goto fileclose;
|
||||
}
|
||||
|
||||
cur = mybuf;
|
||||
version = atoi(cur);
|
||||
if ((version < SRV_STATE_FILE_VERSION_MIN) ||
|
||||
(version > SRV_STATE_FILE_VERSION_MAX))
|
||||
continue;
|
||||
goto fileclose;
|
||||
|
||||
while (fgets(mybuf, SRV_STATE_LINE_MAXLEN, f)) {
|
||||
int bk_f_forced_id = 0;
|
||||
@ -2462,6 +2466,7 @@ void apply_server_state(void)
|
||||
/* now we can proceed with server's state update */
|
||||
srv_update_state(srv, version, srv_params);
|
||||
}
|
||||
fileclose:
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user