]> pd.if.org Git - zpackage/blobdiff - lib/vercmp.c
fix pointer related bugs
[zpackage] / lib / vercmp.c
index 91d536305cdcf97d6c84d0b32343a1f794d69c73..16cf1cdc4eab48ab1f4b89b4cac0178d23b4a858 100644 (file)
@@ -52,6 +52,9 @@ static int ver_cmp(struct ver *a, struct ver *b) {
        }
        if (a->type == 1) {
                int cmp;
+               if (a->s && ! b->s) return 1;
+               if (b->s && ! a->s) return -1;
+               if (!b->s && ! a->s) return 0;
                cmp = strcmp(a->s, b->s);
                if (cmp == 0) {
                        return 0;
@@ -127,6 +130,9 @@ int zpm_vercmp(const char *vsa, const char *vsb) {
                        }
                        return an < bn ? -1 : 1;
                }
+               if (an == 0 && bn == 0) {
+                       return 0;
+               }
                cmp = ver_cmp(&a, &b);
                if (cmp != 0) {
                        return cmp;