Fix several issues found by Coverity scan.

This commit is contained in:
Milan Broz
2019-04-10 12:30:09 +02:00
parent de0cf8433b
commit 23bada3c5a
3 changed files with 10 additions and 7 deletions

View File

@@ -246,7 +246,7 @@ int crypt_storage_decrypt(struct crypt_storage *ctx,
uint64_t iv_offset,
uint64_t length, char *buffer)
{
unsigned int i;
uint64_t i;
int r = 0;
if (length & ((1 << ctx->sector_shift) - 1))
@@ -275,7 +275,7 @@ int crypt_storage_encrypt(struct crypt_storage *ctx,
uint64_t iv_offset,
uint64_t length, char *buffer)
{
unsigned int i;
uint64_t i;
int r = 0;
if (length & ((1 << ctx->sector_shift) - 1))

View File

@@ -301,12 +301,12 @@ static unsigned device_lock_dec(struct crypt_lock_handle *h)
static int acquire_and_verify(struct crypt_device *cd, struct device *device, const char *resource, int flock_op, struct crypt_lock_handle **lock)
{
int r;
struct crypt_lock_handle *h = malloc(sizeof(*h));
struct crypt_lock_handle *h;
if (device && resource)
return -EINVAL;
if (!h)
if (!(h = malloc(sizeof(*h))))
return -ENOMEM;
do {
@@ -329,7 +329,8 @@ static int acquire_and_verify(struct crypt_device *cd, struct device *device, co
*/
r = verify_lock_handle(device_path(device), h);
if (r) {
flock(h->flock_fd, LOCK_UN);
if (flock(h->flock_fd, LOCK_UN))
log_dbg(cd, "flock on fd %d failed.", h->flock_fd);
release_lock_handle(cd, h);
log_dbg(cd, "Lock handle verification failed.");
}
@@ -337,7 +338,7 @@ static int acquire_and_verify(struct crypt_device *cd, struct device *device, co
if (r) {
free(h);
return r;
return -EINVAL;
}
*lock = h;

View File

@@ -185,6 +185,7 @@ int crypt_storage_wrapper_init(struct crypt_device *cd,
return -ENOMEM;
memset(w, 0, sizeof(*w));
w->dev_fd = -1;
w->data_offset = data_offset;
w->mem_alignment = device_alignment(device);
w->block_size = device_block_size(cd, device);
@@ -376,7 +377,8 @@ void crypt_storage_wrapper_destroy(struct crypt_storage_wrapper *cw)
dm_remove_device(NULL, cw->u.dm.name, CRYPT_DEACTIVATE_FORCE);
}
close(cw->dev_fd);
if (cw->dev_fd >= 0)
close(cw->dev_fd);
free(cw);
}