mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-26 14:03:49 +03:00
log_cleaner: Detect rotated filenames properly
When removing rotated log files, their name is matched against a regex (@log_regex) and if they contain '.N' suffix the 'N' is then parsed into an integer. Well, due to a bug in virLogCleanerParseFilename() this is not how the code works. If the suffix isn't found then g_match_info_fetch() returns an empty string instead of NULL which then makes str2int parsing fail. Just check for this case before parsing the string. Based on the original patch sent by David. Reported-by: David Negreira <david.negreira@canonical.com> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
6f293f1fad
commit
a57195e79e
@ -82,10 +82,8 @@ virLogCleanerParseFilename(const char *path,
|
||||
*rotated_index = 0;
|
||||
rotated_index_str = g_match_info_fetch(matchInfo, 3);
|
||||
|
||||
if (!rotated_index_str)
|
||||
return chain_prefix;
|
||||
|
||||
if (virStrToLong_i(rotated_index_str, NULL, 10, rotated_index) < 0) {
|
||||
if (rotated_index_str && STRNEQ(rotated_index_str, "") &&
|
||||
virStrToLong_i(rotated_index_str, NULL, 10, rotated_index) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Failed to parse rotated index from '%1$s'"),
|
||||
rotated_index_str);
|
||||
|
Loading…
x
Reference in New Issue
Block a user