Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
3way merge: complain loudly about missing local checksum (and prevent crash)
Baptiste Daroussin committed 6 months ago
commit 47666473e2a51561d6db8eeee48e1cdd940e213d
parent 99d8a9c
1 file changed +3 -1
modified libpkg/pkg_add.c
@@ -212,11 +212,13 @@ attempt_to_merge(int rootfd, struct pkg_config_file *rcf, struct pkg *local,
		pkg_debug(2, "Ancient vanilla and deployed conf are the same size testing checksum");
		localsum = pkg_checksum_data(localconf, sz,
		    PKG_HASH_TYPE_SHA256_HEX);
-
		if (localsum && STREQ(localsum, lf->sum)) {
+
		if (localsum != NULL && lf->sum != NULL && STREQ(localsum, lf->sum)) {
			pkg_debug(2, "Checksum are the same %jd", (intmax_t)strlen(localconf));
			free(localsum);
			goto ret;
		}
+
		if (lf->sum == NULL)
+
			pkg_emit_error("3way merge: no checksum for the original local file");
		free(localsum);
		pkg_debug(2, "Checksum are different %jd", (intmax_t)strlen(localconf));
	}