diff options
author | marko@hundin.mysql.fi <> | 2004-04-01 16:51:34 +0300 |
---|---|---|
committer | marko@hundin.mysql.fi <> | 2004-04-01 16:51:34 +0300 |
commit | e00bf40360ce47ce718afe85cccfb28ac4c4e8ac (patch) | |
tree | fab5076a83cb8b112b16f76355f3a96a708c48ba /innobase/page | |
parent | ebc7b6ba87da09082b61b57d77c17af867ef804f (diff) | |
download | mariadb-git-e00bf40360ce47ce718afe85cccfb28ac4c4e8ac.tar.gz |
InnoDB cleanup: fixing buffer overflows and quoting of quotes
Diffstat (limited to 'innobase/page')
-rw-r--r-- | innobase/page/page0cur.c | 9 | ||||
-rw-r--r-- | innobase/page/page0page.c | 9 |
2 files changed, 8 insertions, 10 deletions
diff --git a/innobase/page/page0cur.c b/innobase/page/page0cur.c index 890452cfceb..ce9e4327c18 100644 --- a/innobase/page/page0cur.c +++ b/innobase/page/page0cur.c @@ -479,6 +479,7 @@ page_cur_insert_rec_write_log( ulint i; ut_a(rec_size < UNIV_PAGE_SIZE); + ut_ad(rec_size == rec_get_size(insert_rec)); log_ptr = mlog_open(mtr, 30 + MLOG_BUF_MARGIN); @@ -630,8 +631,8 @@ page_cur_parse_insert_rec( return(NULL); } - extra_info_yes = end_seg_len & 0x1; - end_seg_len = end_seg_len / 2; + extra_info_yes = end_seg_len & 0x1UL; + end_seg_len >>= 1; if (end_seg_len >= UNIV_PAGE_SIZE) { recv_sys->found_corrupt_log = TRUE; @@ -694,7 +695,7 @@ page_cur_parse_insert_rec( mismatch_index = rec_get_size(cursor_rec) - end_seg_len; } - if (mismatch_index + end_seg_len < 1024) { + if (mismatch_index + end_seg_len < sizeof buf1) { buf = buf1; } else { buf = mem_alloc(mismatch_index + end_seg_len); @@ -726,7 +727,7 @@ page_cur_parse_insert_rec( page_cur_rec_insert(&cursor, buf + origin_offset, mtr); - if (mismatch_index + end_seg_len >= 1024) { + if (buf != buf1) { mem_free(buf); } diff --git a/innobase/page/page0page.c b/innobase/page/page0page.c index 21adcdea635..7ebcb853448 100644 --- a/innobase/page/page0page.c +++ b/innobase/page/page0page.c @@ -1604,7 +1604,7 @@ page_validate( page_cur_set_before_first(page, &cur); for (;;) { - rec = (&cur)->rec; + rec = cur.rec; if (!page_rec_validate(rec)) { goto func_exit; @@ -1793,16 +1793,13 @@ page_find_rec_with_heap_no( ulint heap_no)/* in: heap number */ { page_cur_t cur; - rec_t* rec; page_cur_set_before_first(page, &cur); for (;;) { - rec = (&cur)->rec; - - if (rec_get_heap_no(rec) == heap_no) { + if (rec_get_heap_no(cur.rec) == heap_no) { - return(rec); + return(cur.rec); } if (page_cur_is_after_last(&cur)) { |