mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Bad return values for ipa-rmkeytab command
ipa-rmkeytab returns success even when the realm passed to the program is not found in a keytab. This patch adds an explanatory error message and returns error code 5 - Principal or realm not found. https://fedorahosted.org/freeipa/ticket/694
This commit is contained in:
parent
af6d3347ba
commit
e90120bdcb
@ -19,6 +19,7 @@
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <krb5.h>
|
||||
@ -108,6 +109,7 @@ remove_realm(krb5_context context, krb5_keytab ktid, const char *realm, int debu
|
||||
krb5_kt_cursor kt_cursor;
|
||||
char * entry_princ_s = NULL;
|
||||
int rval = 0;
|
||||
bool realm_found = false;
|
||||
|
||||
krberr = krb5_kt_start_seq_get(context, ktid, &kt_cursor);
|
||||
memset(&entry, 0, sizeof(entry));
|
||||
@ -128,6 +130,7 @@ remove_realm(krb5_context context, krb5_keytab ktid, const char *realm, int debu
|
||||
krb5_kt_end_seq_get(context, ktid, &kt_cursor);
|
||||
|
||||
if (strstr(entry_princ_s, realm) != NULL) {
|
||||
realm_found = true;
|
||||
rval = remove_principal(context, ktid, entry_princ_s, debug);
|
||||
if (rval != 0)
|
||||
goto done;
|
||||
@ -136,6 +139,11 @@ remove_realm(krb5_context context, krb5_keytab ktid, const char *realm, int debu
|
||||
}
|
||||
}
|
||||
|
||||
if (!realm_found) {
|
||||
fprintf(stderr, _("realm not found\n"));
|
||||
return 5;
|
||||
}
|
||||
|
||||
done:
|
||||
|
||||
return rval;
|
||||
|
@ -84,6 +84,6 @@ The exit status is 0 on success, nonzero on error.
|
||||
|
||||
4 Unable to parse the principal name
|
||||
|
||||
5 Principal name not found in keytab
|
||||
5 Principal name or realm not found in keytab
|
||||
|
||||
6 Unable to remove principal from keytab
|
||||
|
Loading…
Reference in New Issue
Block a user