Check the signature in a helper function instead of in plain
code in order to avoid code duplication

Reviewed-by: Andrew Jones <drjo...@redhat.com>
Signed-off-by: Levente Kurusa <lkur...@redhat.com>
---
 block/vpc.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/block/vpc.c b/block/vpc.c
index 2ba8fc2..a6a7213 100644
--- a/block/vpc.c
+++ b/block/vpc.c
@@ -156,11 +156,15 @@ static uint32_t vpc_checksum(uint8_t* buf, size_t size)
     return ~res;
 }
 
+static int vpc_check_signature(const void *buf)
+{
+    return !strncmp((char *)buf, "conectix", 8);
+}
 
 static int vpc_probe(BlockDriverState *bs, const uint8_t *buf, int buf_size,
                      const char *filename)
 {
-    if (buf_size >= 8 && !strncmp((char *)buf, "conectix", 8))
+    if (buf_size >= 8 && vpc_check_signature(buf))
        return 100;
     return 0;
 }
@@ -184,7 +188,7 @@ static int vpc_open(BlockDriverState *bs, QDict *options, 
int flags,
     }
 
     footer = (VHDFooter *) s->footer_buf;
-    if (strncmp(footer->creator, "conectix", 8)) {
+    if (!vpc_check_signature(footer->creator)) {
         int64_t offset = bdrv_getlength(bs->file);
         if (offset < 0) {
             ret = offset;
@@ -200,7 +204,7 @@ static int vpc_open(BlockDriverState *bs, QDict *options, 
int flags,
         if (ret < 0) {
             goto fail;
         }
-        if (strncmp(footer->creator, "conectix", 8)) {
+        if (!vpc_check_signature(footer->creator)) {
             error_setg(errp, "invalid VPC image");
             ret = -EINVAL;
             goto fail;
-- 
1.9.3


Reply via email to