opkg: fix nullpointer dereference
[oweals/opkg-lede.git] / libopkg / opkg.c
index 4799dc1837565e4ed45cb42934de29d3c79e3f83..d6b66584317cb9666161675a815cb14abf2d23d1 100644 (file)
@@ -34,8 +34,6 @@
 
 #include <libbb/libbb.h>
 
-struct errlist* error_list;
-
 struct _opkg_t
 {
   args_t *args;
@@ -531,6 +529,7 @@ opkg_install_package (opkg_t *opkg, const char *package_name, opkg_progress_call
       case OPKG_INSTALL_ERR_ALREADY_INSTALLED: return OPKG_PACKAGE_ALREADY_INSTALLED;
       case OPKG_INSTALL_ERR_SIGNATURE: return OPKG_GPG_ERROR;
       case OPKG_INSTALL_ERR_MD5: return OPKG_MD5_ERROR;
+      case OPKG_INSTALL_ERR_SHA256: return OPKG_SHA256_ERROR;
       default: return OPKG_UNKNOWN_ERROR;
     }
   }
@@ -670,6 +669,7 @@ opkg_upgrade_package (opkg_t *opkg, const char *package_name, opkg_progress_call
       case OPKG_INSTALL_ERR_ALREADY_INSTALLED: return OPKG_PACKAGE_ALREADY_INSTALLED;
       case OPKG_INSTALL_ERR_SIGNATURE: return OPKG_GPG_ERROR;
       case OPKG_INSTALL_ERR_MD5: return OPKG_MD5_ERROR;
+      case OPKG_INSTALL_ERR_SHA256: return OPKG_SHA256_ERROR;
       default: return OPKG_UNKNOWN_ERROR;
     }
   }
@@ -850,7 +850,7 @@ opkg_update_package_lists (opkg_t *opkg, opkg_progress_callback_t progress_callb
     }
     free (url);
 
-#ifdef HAVE_GPGME
+#if defined(HAVE_GPGME) || defined(HAVE_OPENSSL)
     if ( opkg->conf->check_signature ) {
         char *sig_file_name;
         /* download detached signitures to verify the package lists */
@@ -1087,7 +1087,6 @@ int opkg_repository_accessibility_check(opkg_t *opkg)
            ret++;
     }
     str_list_elt_deinit(iter1);
-    free(iter1);
   }
   free(src);
   return ret;