mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug #28178776 COMPARISON OF UNINITAILIZED MEMORY IN LOG_IN_USE
PROBLEM ------- Memory sanitizer reports uninitialized comparisons in log_in_use(), because strings are compared with memcmp() instead of strncmp. FIX --- Use strncmp() to compare strings
This commit is contained in:
committed by
Sergei Golubchik
parent
942a6bd009
commit
6de2928d5b
@@ -1,5 +1,5 @@
|
|||||||
/* Copyright (c) 2000, 2016, Oracle and/or its affiliates.
|
/* Copyright (c) 2000, 2018, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2009, 2016, MariaDB
|
Copyright (c) 2009, 2019, MariaDB Corporation
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -3413,7 +3413,7 @@ int MYSQL_BIN_LOG::find_log_pos(LOG_INFO *linfo, const char *log_name,
|
|||||||
// if the log entry matches, null string matching anything
|
// if the log entry matches, null string matching anything
|
||||||
if (!log_name ||
|
if (!log_name ||
|
||||||
(log_name_len == fname_len-1 && full_fname[log_name_len] == '\n' &&
|
(log_name_len == fname_len-1 && full_fname[log_name_len] == '\n' &&
|
||||||
!memcmp(full_fname, full_log_name, log_name_len)))
|
!strncmp(full_fname, full_log_name, log_name_len)))
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("Found log file entry"));
|
DBUG_PRINT("info", ("Found log file entry"));
|
||||||
full_fname[fname_len-1]= 0; // remove last \n
|
full_fname[fname_len-1]= 0; // remove last \n
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
/* Copyright (c) 2000, 2018, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2008, 2017, MariaDB Corporation
|
Copyright (c) 2008, 2019, MariaDB Corporation
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -365,7 +365,7 @@ bool log_in_use(const char* log_name)
|
|||||||
if ((linfo = tmp->current_linfo))
|
if ((linfo = tmp->current_linfo))
|
||||||
{
|
{
|
||||||
mysql_mutex_lock(&linfo->lock);
|
mysql_mutex_lock(&linfo->lock);
|
||||||
result = !memcmp(log_name, linfo->log_file_name, log_name_len);
|
result = !strncmp(log_name, linfo->log_file_name, log_name_len);
|
||||||
mysql_mutex_unlock(&linfo->lock);
|
mysql_mutex_unlock(&linfo->lock);
|
||||||
if (result)
|
if (result)
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user