Commit Diff


commit - cd31e9115f6721c23df6212f4a8f3fda3133d189
commit + 9c6e101af4e6750c4464b294980d7852903c8817
blob - 7c0bf3a9347605e6349077b56dcef8d15aff3c95
blob + 390d7ee427b4f78fa7d898cd9ae743efaac3777d
--- got/got.c
+++ got/got.c
@@ -447,10 +447,23 @@ print_commits(struct got_object *root_obj, struct got_
 					err = NULL;
 					changed = 1;
 				} else {
-					changed = (got_object_id_cmp(
-					    got_object_get_id(obj),
-					    got_object_get_id(pobj)) != 0);
+					struct got_object_id *id, *pid;
+					id = got_object_get_id(obj);
+					if (id == NULL) {
+						err = got_error_from_errno();
+						break;
+					}
+					pid = got_object_get_id(pobj);
+					if (pid == NULL) {
+						free(id);
+						err = got_error_from_errno();
+						break;
+					}
+					changed =
+					    (got_object_id_cmp(id, pid) != 0);
 					got_object_close(pobj);
+					free(id);
+					free(pid);
 				}
 			}
 			got_object_close(obj);