File libcap-invalid-free-fix.diff of Package libcap1

Index: progs/getpcaps.c
===================================================================
--- progs/getpcaps.c.orig
+++ progs/getpcaps.c
@@ -52,9 +52,11 @@ int main(int argc, char **argv)
 		continue;
 	} else {
 	    char *result = cap_to_text(cap_d, &length);
-	    fprintf(stderr, "Capabilities for `%s': %s\n", *argv, result);
-	    cap_free(result);
-	    result = NULL;
+	    if (result) {
+		fprintf(stderr, "Capabilities for `%s': %s\n", *argv, result);
+		cap_free(result);
+		result = NULL;
+	    }
 	}
     }
 
Index: progs/setpcaps.c
===================================================================
--- progs/setpcaps.c.orig
+++ progs/setpcaps.c
@@ -98,9 +98,11 @@ int main(int argc, char **argv)
 	    char *result;
 
 	    result = cap_to_text(cap_d, &length);
-	    fprintf(stderr, "[caps set to:\n%s\n]\n", result);
-	    cap_free(result);
-	    result = NULL;
+	    if (result) {
+		fprintf(stderr, "[caps set to:\n%s\n]\n", result);
+		cap_free(result);
+		result = NULL;
+	    }
 	}
 #endif
 
openSUSE Build Service is sponsored by