diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-08-22 11:40:39 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-08-22 11:40:39 +0200 |
commit | cefc30b1663114930439e03dec245604bc904604 (patch) | |
tree | 83a4479fe38adb24e478dde743856f04d65fa801 /mysys | |
parent | 34f2f8ea41726d98e50752ff3453ebde70912c35 (diff) | |
parent | 171355077501da7ddd32778ab3ebe77c5f7ce7da (diff) | |
download | mariadb-git-cefc30b1663114930439e03dec245604bc904604.tar.gz |
merge with MySQL 5.1.65
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/mf_iocache2.c | 6 | ||||
-rw-r--r-- | mysys/my_access.c | 3 | ||||
-rw-r--r-- | mysys/my_write.c | 12 |
3 files changed, 18 insertions, 3 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c index 16358b0056e..2316c2594ab 100644 --- a/mysys/mf_iocache2.c +++ b/mysys/mf_iocache2.c @@ -430,7 +430,11 @@ process_flags: memset(buffz, '0', minimum_width - length2); else memset(buffz, ' ', minimum_width - length2); - my_b_write(info, buffz, minimum_width - length2); + if (my_b_write(info, buffz, minimum_width - length2)) + { + my_afree(buffz); + goto err; + } my_afree(buffz); } diff --git a/mysys/my_access.c b/mysys/my_access.c index 210946d50a8..43917da7f98 100644 --- a/mysys/my_access.c +++ b/mysys/my_access.c @@ -148,7 +148,8 @@ static char reserved_map[256]= int check_if_legal_tablename(const char *name) { DBUG_ENTER("check_if_legal_tablename"); - DBUG_RETURN((reserved_map[(uchar) name[0]] & 1) && + DBUG_RETURN(name[0] != 0 && name[1] != 0 && + (reserved_map[(uchar) name[0]] & 1) && (reserved_map[(uchar) name[1]] & 2) && (reserved_map[(uchar) name[2]] & 4) && str_list_find(&reserved_names[1], name)); diff --git a/mysys/my_write.c b/mysys/my_write.c index 5d28e066814..11708d8f10e 100644 --- a/mysys/my_write.c +++ b/mysys/my_write.c @@ -38,7 +38,17 @@ size_t my_write(int Filedes, const uchar *Buffer, size_t Count, myf MyFlags) for (;;) { - if ((writenbytes= write(Filedes, Buffer, Count)) == Count) + writenbytes= write(Filedes, Buffer, Count); + /** + To simulate the write error set the errno = error code + and the number pf written bytes to -1. + */ + DBUG_EXECUTE_IF ("simulate_file_write_error", + { + errno= ENOSPC; + writenbytes= (size_t) -1; + }); + if (writenbytes == Count) break; if (writenbytes != (size_t) -1) { /* Safeguard */ |