"wrong or NULL argument passed" is a useless error for end users.

Fixes FS#60880.

Signed-off-by: Andrew Gregory <[email protected]>
---
 lib/libalpm/alpm.h    | 4 +++-
 lib/libalpm/be_sync.c | 2 +-
 lib/libalpm/error.c   | 3 +++
 lib/libalpm/handle.c  | 6 +++---
 4 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 2d3d198a..597e11bd 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -118,7 +118,9 @@ typedef enum _alpm_errno_t {
        ALPM_ERR_LIBARCHIVE,
        ALPM_ERR_LIBCURL,
        ALPM_ERR_EXTERNAL_DOWNLOAD,
-       ALPM_ERR_GPGME
+       ALPM_ERR_GPGME,
+       /* Missing compile-time features */
+       ALPM_ERR_MISSING_CAPABILITY_SIGNATURES
 } alpm_errno_t;
 
 /** Returns the current error code from the handle. */
diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c
index 5009a7da..6adf1cd9 100644
--- a/lib/libalpm/be_sync.c
+++ b/lib/libalpm/be_sync.c
@@ -788,7 +788,7 @@ alpm_db_t *_alpm_db_register_sync(alpm_handle_t *handle, 
const char *treename,
 
 #ifndef HAVE_LIBGPGME
        if(level != ALPM_SIG_USE_DEFAULT) {
-               RET_ERR(handle, ALPM_ERR_WRONG_ARGS, NULL);
+               RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, NULL);
        }
 #endif
 
diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c
index b4fc99ae..95be9d7b 100644
--- a/lib/libalpm/error.c
+++ b/lib/libalpm/error.c
@@ -159,6 +159,9 @@ const char SYMEXPORT *alpm_strerror(alpm_errno_t err)
                        return _("gpgme error");
                case ALPM_ERR_EXTERNAL_DOWNLOAD:
                        return _("error invoking external downloader");
+               /* Missing compile-time features */
+               case ALPM_ERR_MISSING_CAPABILITY_SIGNATURES:
+                               return _("compiled without signature support");
                /* Unknown error! */
                default:
                        return _("unexpected error");
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c
index 2213ce53..be5666dc 100644
--- a/lib/libalpm/handle.c
+++ b/lib/libalpm/handle.c
@@ -807,7 +807,7 @@ int SYMEXPORT 
alpm_option_set_default_siglevel(alpm_handle_t *handle,
        handle->siglevel = level;
 #else
        if(level != 0 && level != ALPM_SIG_USE_DEFAULT) {
-               RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
+               RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, -1);
        }
 #endif
        return 0;
@@ -827,7 +827,7 @@ int SYMEXPORT 
alpm_option_set_local_file_siglevel(alpm_handle_t *handle,
        handle->localfilesiglevel = level;
 #else
        if(level != 0 && level != ALPM_SIG_USE_DEFAULT) {
-               RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
+               RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, -1);
        }
 #endif
        return 0;
@@ -851,7 +851,7 @@ int SYMEXPORT 
alpm_option_set_remote_file_siglevel(alpm_handle_t *handle,
        handle->remotefilesiglevel = level;
 #else
        if(level != 0 && level != ALPM_SIG_USE_DEFAULT) {
-               RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
+               RET_ERR(handle, ALPM_ERR_MISSING_CAPABILITY_SIGNATURES, -1);
        }
 #endif
        return 0;
-- 
2.19.1

Reply via email to