You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.1 KiB
55 lines
2.1 KiB
diff --git a/modules/aaa/mod_authz_dbd.c b/modules/aaa/mod_authz_dbd.c |
|
index 1a456fe..6a0f705 100644 |
|
--- a/modules/aaa/mod_authz_dbd.c |
|
+++ b/modules/aaa/mod_authz_dbd.c |
|
@@ -116,7 +116,7 @@ static int authz_dbd_login(request_rec *r, authz_dbd_cfg *cfg, |
|
const char *newuri = NULL; |
|
int nrows; |
|
const char *message; |
|
- ap_dbd_t *dbd = dbd_handle(r); |
|
+ ap_dbd_t *dbd; |
|
apr_dbd_prepared_t *query; |
|
apr_dbd_results_t *res = NULL; |
|
apr_dbd_row_t *row = NULL; |
|
@@ -126,6 +126,16 @@ static int authz_dbd_login(request_rec *r, authz_dbd_cfg *cfg, |
|
"No query configured for %s!", action); |
|
return HTTP_INTERNAL_SERVER_ERROR; |
|
} |
|
+ |
|
+ dbd = dbd_handle(r); |
|
+ if (dbd == NULL) { |
|
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02902) |
|
+ "No db handle available for %s! " |
|
+ "Check your database access", |
|
+ action); |
|
+ return HTTP_INTERNAL_SERVER_ERROR; |
|
+ } |
|
+ |
|
query = apr_hash_get(dbd->prepared, cfg->query, APR_HASH_KEY_STRING); |
|
if (query == NULL) { |
|
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01643) |
|
@@ -202,7 +212,7 @@ static int authz_dbd_group_query(request_rec *r, authz_dbd_cfg *cfg, |
|
/* SELECT group FROM authz WHERE user = %s */ |
|
int rv; |
|
const char *message; |
|
- ap_dbd_t *dbd = dbd_handle(r); |
|
+ ap_dbd_t *dbd; |
|
apr_dbd_prepared_t *query; |
|
apr_dbd_results_t *res = NULL; |
|
apr_dbd_row_t *row = NULL; |
|
@@ -212,6 +222,15 @@ static int authz_dbd_group_query(request_rec *r, authz_dbd_cfg *cfg, |
|
"No query configured for dbd-group!"); |
|
return HTTP_INTERNAL_SERVER_ERROR; |
|
} |
|
+ |
|
+ dbd = dbd_handle(r); |
|
+ if (dbd == NULL) { |
|
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02903) |
|
+ "No db handle available for dbd-query! " |
|
+ "Check your database access"); |
|
+ return HTTP_INTERNAL_SERVER_ERROR; |
|
+ } |
|
+ |
|
query = apr_hash_get(dbd->prepared, cfg->query, APR_HASH_KEY_STRING); |
|
if (query == NULL) { |
|
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01650)
|
|
|