Revision 5d757b56 block/qcow2-cluster.c

b/block/qcow2-cluster.c
33 33
    BDRVQcowState *s = bs->opaque;
34 34
    int new_l1_size, new_l1_size2, ret, i;
35 35
    uint64_t *new_l1_table;
36
    uint64_t new_l1_table_offset;
36
    int64_t new_l1_table_offset;
37 37
    uint8_t data[12];
38 38

  
39 39
    new_l1_size = s->l1_size;
......
55 55

  
56 56
    /* write new table (align to cluster) */
57 57
    new_l1_table_offset = qcow2_alloc_clusters(bs, new_l1_size2);
58
    if (new_l1_table_offset < 0) {
59
        qemu_free(new_l1_table);
60
        return new_l1_table_offset;
61
    }
58 62

  
59 63
    for(i = 0; i < s->l1_size; i++)
60 64
        new_l1_table[i] = cpu_to_be64(new_l1_table[i]);
......
222 226
    /* allocate a new l2 entry */
223 227

  
224 228
    l2_offset = qcow2_alloc_clusters(bs, s->l2_size * sizeof(uint64_t));
229
    if (l2_offset < 0) {
230
        return NULL;
231
    }
225 232

  
226 233
    /* update the L1 entry */
227 234

  
......
569 576
        qcow2_free_any_clusters(bs, cluster_offset, 1);
570 577

  
571 578
    cluster_offset = qcow2_alloc_bytes(bs, compressed_size);
579
    if (cluster_offset < 0) {
580
        return 0;
581
    }
582

  
572 583
    nb_csectors = ((cluster_offset + compressed_size - 1) >> 9) -
573 584
                  (cluster_offset >> 9);
574 585

  
......
700 711
{
701 712
    BDRVQcowState *s = bs->opaque;
702 713
    int l2_index, ret;
703
    uint64_t l2_offset, *l2_table, cluster_offset;
714
    uint64_t l2_offset, *l2_table;
715
    int64_t cluster_offset;
704 716
    unsigned int nb_clusters, i = 0;
705 717
    QCowL2Meta *old_alloc;
706 718

  
......
794 806
    /* allocate a new cluster */
795 807

  
796 808
    cluster_offset = qcow2_alloc_clusters(bs, nb_clusters * s->cluster_size);
809
    if (cluster_offset < 0) {
810
        return cluster_offset;
811
    }
797 812

  
798 813
    /* save info needed for meta data update */
799 814
    m->offset = offset;

Also available in: Unified diff