mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Bug #27119 server crash with integer division by zero during filesort on huge result
Fixed a problem and compiler warning on 64bit platforms so that they only allocated UINT_MAX number of BUFFPEKS. sql/filesort.cc: Fixed a problem and compiler warning on 64bit platforms so that they only allocated UINT_MAX number of BUFFPEKS.
This commit is contained in:
parent
8494cd5bb6
commit
c2d3fb6b20
1 changed files with 2 additions and 2 deletions
|
@ -370,7 +370,7 @@ static BUFFPEK *read_buffpek_from_file(IO_CACHE *buffpek_pointers, uint count)
|
|||
ulong length;
|
||||
BUFFPEK *tmp;
|
||||
DBUG_ENTER("read_buffpek_from_file");
|
||||
if ((ulong)count > ULONG_MAX/sizeof(BUFFPEK))
|
||||
if (count > UINT_MAX/sizeof(BUFFPEK))
|
||||
return 0; /* sizeof(BUFFPEK)*count will overflow */
|
||||
tmp=(BUFFPEK*) my_malloc(length=sizeof(BUFFPEK)*count, MYF(MY_WME));
|
||||
if (tmp)
|
||||
|
@ -604,7 +604,7 @@ write_keys(SORTPARAM *param, register uchar **sort_keys, uint count,
|
|||
MYF(MY_WME)))
|
||||
goto err; /* purecov: inspected */
|
||||
/* check we won't have more buffpeks than we can possibly keep in memory */
|
||||
if (my_b_tell(buffpek_pointers) + sizeof(BUFFPEK) > (ulonglong)ULONG_MAX)
|
||||
if (my_b_tell(buffpek_pointers) + sizeof(BUFFPEK) > (ulonglong)UINT_MAX)
|
||||
goto err;
|
||||
buffpek.file_pos= my_b_tell(tempfile);
|
||||
if ((ha_rows) count > param->max_rows)
|
||||
|
|
Loading…
Add table
Reference in a new issue