~ubuntu-branches/ubuntu/vivid/mariadb-5.5/vivid-proposed

« back to all changes in this revision

Viewing changes to storage/xtradb/log/log0online.c

  • Committer: Package Import Robot
  • Author(s): Otto Kekäläinen
  • Date: 2014-11-14 21:04:24 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20141114210424-xlyna0ozl11647o5
Tags: 5.5.40-0ubuntu0.14.10.1
* SECURITY UPDATE: Update to 5.5.40 to fix security issues (LP: #1391676)
  - CVE-2014-6507
  - CVE-2014-6491
  - CVE-2014-6500
  - CVE-2014-6469
  - CVE-2014-6555
  - CVE-2014-6559
  - CVE-2014-6494
  - CVE-2014-6496
  - CVE-2014-6464
* Add bsdutils as mariadb-server dependency like upstream does in 5.5.40.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1202
1202
 
1203
1203
                bmp_tree_node = (ib_rbt_node_t*)
1204
1204
                        rbt_next(log_bmp_sys->modified_pages, bmp_tree_node);
 
1205
 
 
1206
                DBUG_EXECUTE_IF("bitmap_page_2_write_error",
 
1207
                                DBUG_SET("+d,bitmap_page_write_error"););
1205
1208
        }
1206
1209
 
1207
1210
        rbt_reset(log_bmp_sys->modified_pages);
1265
1268
/*********************************************************************//**
1266
1269
Diagnose a bitmap file range setup failure and free the partially-initialized
1267
1270
bitmap file range.  */
 
1271
UNIV_COLD
1268
1272
static
1269
1273
void
1270
1274
log_online_diagnose_inconsistent_dir(
1444
1448
                return FALSE;
1445
1449
        }
1446
1450
 
1447
 
#ifdef UNIV_DEBUG
1448
 
        if (!bitmap_files->files[0].seq_num) {
 
1451
        if (!bitmap_files->files[0].seq_num
 
1452
            || bitmap_files->files[0].seq_num != first_file_seq_num) {
1449
1453
 
1450
1454
                log_online_diagnose_inconsistent_dir(bitmap_files);
1451
1455
                return FALSE;
1452
1456
        }
1453
 
        ut_ad(bitmap_files->files[0].seq_num == first_file_seq_num);
 
1457
 
1454
1458
        {
1455
1459
                size_t i;
1456
1460
                for (i = 1; i < bitmap_files->count; i++) {
1457
1461
                        if (!bitmap_files->files[i].seq_num) {
1458
1462
                                break;
1459
1463
                        }
1460
 
                        ut_ad(bitmap_files->files[i].seq_num
1461
 
                              > bitmap_files->files[i - 1].seq_num);
1462
 
                        ut_ad(bitmap_files->files[i].start_lsn
1463
 
                              >= bitmap_files->files[i - 1].start_lsn);
 
1464
                        if ((bitmap_files->files[i].seq_num
 
1465
                              <= bitmap_files->files[i - 1].seq_num)
 
1466
                            || (bitmap_files->files[i].start_lsn
 
1467
                                < bitmap_files->files[i - 1].start_lsn)) {
 
1468
 
 
1469
                                log_online_diagnose_inconsistent_dir(
 
1470
                                                                bitmap_files);
 
1471
                                return FALSE;
 
1472
                        }
1464
1473
                }
1465
1474
        }
1466
 
#endif
1467
1475
 
1468
1476
        return TRUE;
1469
1477
}
1590
1598
{
1591
1599
        ut_a(i);
1592
1600
 
 
1601
        if (UNIV_UNLIKELY(min_lsn > max_lsn)) {
 
1602
 
 
1603
                /* Empty range */
 
1604
                i->in_files.count = 0;
 
1605
                i->in_files.files = NULL;
 
1606
                i->in.file = os_file_invalid;
 
1607
                i->page = NULL;
 
1608
                i->failed = FALSE;
 
1609
                return TRUE;
 
1610
        }
 
1611
 
1593
1612
        if (!log_online_setup_bitmap_file_range(&i->in_files, min_lsn,
1594
1613
                max_lsn)) {
1595
1614