[MDEV-27570] MSAN errors in find_type / find_set / Field_set::store upon LOAD DATA Created: 2022-01-21  Updated: 2023-03-03

Status: Open
Project: MariaDB Server
Component/s: Data types, Server
Affects Version/s: 10.5, 10.6, 10.7
Fix Version/s: 10.5, 10.6

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Oleksandr Byelkin
Resolution: Unresolved Votes: 0
Labels: None


 Description   

CREATE DATABASE db DEFAULT CHARSET=utf16;
USE db;
CREATE TABLE t (
  a int(11) NOT NULL,
  b SET('Montana','Texas'),
  c INT NOT NULL DEFAULT 0,
  d INT
) ENGINE=MyISAM
;
INSERT INTO t (a) VALUES (1),(10);
 
SELECT * INTO OUTFILE 't.data' FROM t;
LOAD DATA INFILE 't.data' IGNORE INTO TABLE t;
 
# Cleanup
--let $datadir= `select @@datadir`
--remove_file $datadir/db/t.data
DROP DATABASE db;

10.5 e8e755ea6 MSAN

==42004==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x5611b999ea29 in find_type(st_typelib const*, char const*, unsigned long, bool) /home/jenkins/10.5/sql/strfunc.cc
    #1 0x5611b999ea29 in find_set(st_typelib const*, char const*, unsigned long, charset_info_st const*, char**, unsigned int*, bool*) /home/jenkins/10.5/sql/strfunc.cc:83:23
    #2 0x5611ba0e1f59 in Field_set::store(char const*, unsigned long, charset_info_st const*) /home/jenkins/10.5/sql/field.cc:9365:18
    #3 0x5611ba0239b8 in Field::load_data_set_value(char const*, unsigned int, charset_info_st const*) /home/jenkins/10.5/sql/field.cc:1418:3
    #4 0x5611b91e8cd1 in Item_field::load_data_set_value(THD*, char const*, unsigned int, Load_data_param const*) /home/jenkins/10.5/sql/item.h:3437:12
    #5 0x5611b91e8cd1 in non-virtual thunk to Item_field::load_data_set_value(THD*, char const*, unsigned int, Load_data_param const*) /home/jenkins/10.5/sql/item.h
    #6 0x5611b94e3137 in read_sep_field(THD*, st_copy_info&, TABLE_LIST*, List<Item>&, List<Item>&, List<Item>&, READ_INFO&, String&, unsigned long, bool) /home/jenkins/10.5/sql/sql_load.cc:1127:18
    #7 0x5611b94e3137 in mysql_load(THD*, sql_exchange const*, TABLE_LIST*, List<Item>&, List<Item>&, List<Item>&, enum_duplicates, bool, bool) /home/jenkins/10.5/sql/sql_load.cc:677:14
    #8 0x5611b9535cbb in mysql_execute_command(THD*) /home/jenkins/10.5/sql/sql_parse.cc:5082:10
    #9 0x5611b9516938 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /home/jenkins/10.5/sql/sql_parse.cc:8100:18
    #10 0x5611b9509bfc in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /home/jenkins/10.5/sql/sql_parse.cc:1891:7
    #11 0x5611b95188ac in do_command(THD*) /home/jenkins/10.5/sql/sql_parse.cc:1370:17
    #12 0x5611b9b0c8d9 in do_handle_one_connection(CONNECT*, bool) /home/jenkins/10.5/sql/sql_connect.cc:1418:11
    #13 0x5611b9b0bff5 in handle_one_connection /home/jenkins/10.5/sql/sql_connect.cc:1312:5
    #14 0x5611baf0d8ea in pfs_spawn_thread /home/jenkins/10.5/storage/perfschema/pfs.cc:2201:3
    #15 0x7f56e260b608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477:8
    #16 0x7f56e2310292 in clone /build/glibc-eX1tMB/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
 
  Uninitialized value was created by an allocation of 'wc' in the stack frame of function '_Z8find_setPK10st_typelibPKcmPK15charset_info_stPPcPjPb'
    #0 0x5611b999dc10 in find_set(st_typelib const*, char const*, unsigned long, charset_info_st const*, char**, unsigned int*, bool*) /home/jenkins/10.5/sql/strfunc.cc:52
 
SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/jenkins/10.5/sql/strfunc.cc in find_type(st_typelib const*, char const*, unsigned long, bool)

Not reproducible with Valgrind.
Reproducible on 10.5+. Earlier versions may also be affected, but I can't confirm it because MSAN only works meaningfully with 10.5+.


Generated at Thu Feb 08 09:53:55 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.