opkg: Don't attempt to check the validity of a repository if package did not
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 05:22:59 +0000 (05:22 +0000)
committerticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 05:22:59 +0000 (05:22 +0000)
      come from a known source

git-svn-id: http://opkg.googlecode.com/svn/trunk@134 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

libopkg/opkg_install.c

index 3db224f191bd592e2317e7b7d660b60c979a86f2..e1a50ccb8585c447d1819f4762c1961c82784358 100644 (file)
@@ -828,22 +828,26 @@ int opkg_install_pkg(opkg_conf_t *conf, pkg_t *pkg, int from_upgrade)
      #if HAVE_GPGME
      char *list_file_name, *sig_file_name, *lists_dir;
 
-     sprintf_alloc (&lists_dir, "%s",
-                   (conf->restrict_to_default_dest)
-                    ? conf->default_dest->lists_dir
-                    : conf->lists_dir);
-     sprintf_alloc (&list_file_name, "%s/%s", lists_dir, pkg->src->name);
-     sprintf_alloc (&sig_file_name, "%s/%s.sig", lists_dir, pkg->src->name);
-
-     if (file_exists (sig_file_name))
+     /* check to ensure the package has come from a repository */
+     if (pkg->src)
      {
-       if (opkg_verify_file (conf, list_file_name, sig_file_name))
-         return OPKG_INSTALL_ERR_SIGNATURE;
+       sprintf_alloc (&lists_dir, "%s",
+                     (conf->restrict_to_default_dest)
+                      ? conf->default_dest->lists_dir
+                      : conf->lists_dir);
+       sprintf_alloc (&list_file_name, "%s/%s", lists_dir, pkg->src->name);
+       sprintf_alloc (&sig_file_name, "%s/%s.sig", lists_dir, pkg->src->name);
+
+       if (file_exists (sig_file_name))
+       {
+         if (opkg_verify_file (conf, list_file_name, sig_file_name))
+           return OPKG_INSTALL_ERR_SIGNATURE;
+       }
+
+       free (lists_dir);
+       free (list_file_name);
+       free (sig_file_name);
      }
-
-     free (lists_dir);
-     free (list_file_name);
-     free (sig_file_name);
      #endif
 
      /* Check for md5 values */