Browse Source

r8791@Kushana: nickm | 2006-09-12 15:00:48 -0400
As long as we are being pedantic, we may as well be extra-pedantic.


svn:r8376

Nick Mathewson 17 years ago
parent
commit
61531f029d
1 changed files with 19 additions and 5 deletions
  1. 19 5
      contrib/id_to_fp.c

+ 19 - 5
contrib/id_to_fp.c

@@ -14,16 +14,17 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#define die(s) do { fprintf(stderr, "%s\n", s); return 1; } while (0)
+#define die(s) do { fprintf(stderr, "%s\n", s); goto err; } while (0)
 
 int
 main(int argc, char **argv)
 {
-  BIO *b;
-  RSA *key;
-  unsigned char *buf, *bufp;
+  BIO *b = NULL;
+  RSA *key = NULL;
+  unsigned char *buf = NULL, *bufp;
   int len, i;
   unsigned char digest[20];
+  int status = 1;
 
   if (argc != 2)
     die("I want a filename");
@@ -34,7 +35,11 @@ main(int argc, char **argv)
     die("couldn't parse key");
 
   len = i2d_RSAPublicKey(key, NULL);
+  if (len < 0)
+    die("Bizarre key");
   bufp = buf = malloc(len+1);
+  if (!buf)
+    die("Out of memory");
   len = i2d_RSAPublicKey(key, &bufp);
   if (len < 0)
     die("Bizarre key");
@@ -45,6 +50,15 @@ main(int argc, char **argv)
   }
   printf("\n");
 
-  return 0;
+  status = 0;
+
+err:
+  if (buf)
+    free(buf);
+  if (key)
+    RSA_free(key);
+  if (b)
+    BIO_free(b);
+  return status;
 }