Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/gpt/libgpt.c

    r8559fa0 r9bdfde73  
    127127        rc = block_init(EXCHANGE_ATOMIC, dev_handle, 512);
    128128        if (rc != EOK)
    129                 goto fail;
     129                return rc;
    130130       
    131131        rc = block_get_bsize(dev_handle, &b_size);
    132132        if (rc != EOK)
    133                 goto fini_fail;
     133                return rc;
    134134       
    135135        if (label->gpt == NULL) {
    136136                label->gpt = gpt_alloc_header(b_size);
    137                 if (label->gpt == NULL) {
    138                         rc = ENOMEM;
    139                         goto fini_fail;
    140                 }
     137                if (label->gpt == NULL)
     138                        return ENOMEM;
    141139        }
    142140       
     
    146144                rc = block_get_nblocks(dev_handle, &n_blocks);
    147145                if (rc != EOK)
    148                         goto free_fail;
     146                        goto fail;
    149147
    150148                rc = load_and_check_header(dev_handle, n_blocks - 1, b_size, label->gpt->header);
    151149                if (rc == EBADCHECKSUM || rc == EINVAL)
    152                         goto free_fail;
     150                        goto fail;
    153151        }
    154152       
     
    157155        return EOK;
    158156       
    159 free_fail:
     157fail:
     158        block_fini(dev_handle);
    160159        gpt_free_gpt(label->gpt);
    161160        label->gpt = NULL;
    162 fini_fail:
    163         block_fini(dev_handle);
    164 fail:
    165161        return rc;
    166162}
     
    244240         *  - we don't need more bytes
    245241         *  - the size of GPT partition entry can be different to 128 bytes */
    246         /* comm_size is ignored */
    247242        rc = block_init(EXCHANGE_SERIALIZE, label->device, sizeof(gpt_entry_t));
    248243        if (rc != EOK)
     
    252247        rc = block_get_bsize(label->device, &block_size);
    253248        if (rc != EOK)
    254                 goto fini_fail;
     249                goto fail;
    255250
    256251        //size_t bufpos = 0;
     
    271266
    272267                if (rc != EOK)
    273                         goto fini_fail;
     268                        goto fail;
    274269        }
    275270
     
    279274         * on all of the partition entry array.
    280275         */
    281         uint32_t crc = compute_crc32((uint8_t *) label->parts->part_array,
    282                            label->parts->fill * sizeof(gpt_entry_t));
     276        uint32_t crc = compute_crc32((uint8_t *) label->parts->part_array, label->parts->fill * sizeof(gpt_entry_t));
    283277
    284278        if(uint32_t_le2host(label->gpt->header->pe_array_crc32) != crc)
    285279        {
    286280                rc = EBADCHECKSUM;
    287                 goto fini_fail;
    288         }
    289        
    290         block_fini(label->device);
     281                goto fail;
     282        }
     283
    291284        return EOK;
    292        
    293 fini_fail:
    294         block_fini(label->device);
    295285       
    296286fail:
Note: See TracChangeset for help on using the changeset viewer.