Fix a memory leak on error in bc_program_num()
diff --git a/src/bc/program.c b/src/bc/program.c
index 7f48b29..06ce70f 100644
--- a/src/bc/program.c
+++ b/src/bc/program.c
@@ -216,7 +216,10 @@
 
       status = bc_num_parse(&result->data.num, *s, &p->ibase, base);
 
-      if (status) return status;
+      if (status) {
+        bc_num_free(&result->data.num);
+        return status;
+      }
 
       *num = &result->data.num;