]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/reveng/reveng.c
Merge pull request #14 from k02a/patch-2
[proxmark3-svn] / client / reveng / reveng.c
index dd50987c308fd7b47c2ccc503e99289b8897880c..c537b631ac79b6cef22e7ecc5cd14a59f5ee5cc1 100644 (file)
@@ -1,9 +1,9 @@
 /* reveng.c
- * Greg Cook, 9/Apr/2015
+ * Greg Cook, 24/Feb/2016
  */
 
 /* CRC RevEng, an arbitrary-precision CRC calculator and algorithm finder
- * Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015  Gregory Cook
+ * Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016  Gregory Cook
  *
  * This file is part of CRC RevEng.
  *
@@ -141,8 +141,10 @@ reveng(const model_t *guess, const poly_t qpoly, int rflags, int args, const pol
                engini(&resc, &result, guess->spoly, guess->flags, args, argpolys);
 
 requit:
-       if(!(result = realloc(result, ++resc * sizeof(model_t))))
+       if(!(result = realloc(result, ++resc * sizeof(model_t)))) {
                uerror("cannot reallocate result array");
+               return NULL;
+       }
        rptr = result + resc - 1;
        rptr->spoly  = pzero;
        rptr->init   = pzero;
@@ -471,9 +473,12 @@ chkres(int *resc, model_t **result, const poly_t divisor, const poly_t init, int
        pfree(&xor);
        if(aptr != eptr) return;
 
-       if(!(*result = realloc(*result, ++*resc * sizeof(model_t))))
+       *result = realloc(*result, ++*resc * sizeof(model_t));
+       if (!*result) {
                uerror("cannot reallocate result array");
-
+               return;
+       }
+       
        rptr = *result + *resc - 1;
        rptr->spoly  = pclone(divisor);
        rptr->init   = pclone(init);
Impressum, Datenschutz