Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Always check the return value of pkg_new().
Alexandre Perrin committed 13 years ago
commit af169e2b7ef8c7d96e017c0f5f8892fc631594c5
parent a60984b
6 files changed +22 -13
modified libpkg/pkg.c
@@ -1023,9 +1023,11 @@ pkg_open2(struct pkg **pkg_p, struct archive **a, struct archive_entry **ae, con
		goto cleanup;
	}

-
	if (*pkg_p == NULL)
-
		pkg_new(pkg_p, PKG_FILE);
-
	else
+
	if (*pkg_p == NULL) {
+
		retcode = pkg_new(pkg_p, PKG_FILE);
+
		if (retcode != EPKG_OK)
+
			goto cleanup;
+
	} else
		pkg_reset(*pkg_p, PKG_FILE);

	pkg = *pkg_p;
modified libpkg/pkg_create.c
@@ -222,8 +222,10 @@ pkg_create_staged(const char *outdir, pkg_formats format, const char *rootdir,
	if (snprintf(path, sizeof(path), "%s/+MANIFEST", md_dir) == -1)
		goto cleanup;

-
	pkg_new(&pkg, old ? PKG_OLD_FILE : PKG_FILE);
-
	if (pkg == NULL)
+
	if(pkg_new(&pkg, old ? PKG_OLD_FILE : PKG_FILE) != EPKG_OK) {
+
		ret = EPKG_FATAL;
+
		goto cleanup;
+
	}
		goto cleanup;

	if ((ret = pkg_load_manifest_file(pkg, path)) != EPKG_OK) {
modified libpkg/pkgdb.c
@@ -1247,9 +1247,11 @@ pkgdb_it_next(struct pkgdb_it *it, struct pkg **pkg_p, unsigned flags)

	switch (sqlite3_step(it->stmt)) {
	case SQLITE_ROW:
-
		if (*pkg_p == NULL)
-
			pkg_new(pkg_p, it->type);
-
		else
+
		if (*pkg_p == NULL) {
+
			ret = pkg_new(pkg_p, it->type);
+
			if (ret != EPKG_OK)
+
				return (ret);
+
		} else
			pkg_reset(*pkg_p, it->type);
		pkg = *pkg_p;

modified pkg/audit.c
@@ -386,7 +386,8 @@ exec_audit(int argc, char **argv)
			err(EX_USAGE, "bad package name format: %s", name);
		version[0] = '\0';
		version++;
-
		pkg_new(&pkg, PKG_FILE);
+
		if (pkg_new(&pkg, PKG_FILE) != EPKG_OK)
+
			err(EX_OSERR, "malloc");
		pkg_set(pkg,
		    PKG_NAME, name,
		    PKG_VERSION, version);
modified pkg/convert.c
@@ -243,9 +243,10 @@ convert_from_old(const char *pkg_add_dbdir, bool dry_run)
			if (strcmp(dp->d_name, ".") == 0 ||
			    strcmp(dp->d_name, "..") == 0)
				continue;
-
			if (p == NULL)
-
				pkg_new(&p, PKG_OLD_FILE);
-
			else
+
			if (p == NULL) {
+
				if (pkg_new(&p, PKG_OLD_FILE) != EPKG_OK)
+
					err(EX_OSERR, "malloc");
+
			} else
				pkg_reset(p, PKG_OLD_FILE);
			printf("Converting %s...\n", dp->d_name);
			snprintf(path, MAXPATHLEN, "%s/%s", pkg_add_dbdir, dp->d_name);
modified pkg/register.c
@@ -103,7 +103,8 @@ exec_register(int argc, char **argv)

	pkg_config_bool(PKG_CONFIG_DEVELOPER_MODE, &developer);

-
	pkg_new(&pkg, PKG_INSTALLED);
+
	if (pkg_new(&pkg, PKG_INSTALLED) != EPKG_OK)
+
		err(EX_OSERR, "malloc");
	while ((ch = getopt(argc, argv, "f:m:i:ldO")) != -1) {
		switch (ch) {
		case 'f':