Why doesn't the shrink() method in sql_string.h check the value of
alloced before calling my_realloc? my_realloc might free Ptr, but when
alloced=0 that memory is not owned by the string.

2            bk@work |   inline void shrink(uint32 arg_length)
 // Shrink buffer
2            bk@work |   {
2            bk@work |     if (arg_length < Alloced_length)
2            bk@work |     {
2            bk@work |       char *new_ptr;
2            bk@work |       if (!(new_ptr=(char*)
my_realloc(Ptr,arg_length,MYF(0))))
2            bk@work |       {
228          sasha@m |  Alloced_length = 0;
2            bk@work |  real_alloc(arg_length);
2            bk@work |       }
2            bk@work |       else
2            bk@work |       {
2            bk@work |  Ptr=new_ptr;
2            bk@work |  Alloced_length=arg_length;
2            bk@work |       }
2            bk@work |     }
2            bk@work |   }


-- 
Mark Callaghan
mdcal...@gmail.com

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to