catch error from as.*printf
This commit is contained in:
@@ -877,7 +877,7 @@ scc_get_first (krb5_context context,
|
||||
krb5_scache *s = SCACHE(id);
|
||||
krb5_error_code ret;
|
||||
struct cred_ctx *ctx;
|
||||
char *str, *name;
|
||||
char *str = NULL, *name = NULL;
|
||||
|
||||
*cursor = NULL;
|
||||
|
||||
@@ -902,17 +902,17 @@ scc_get_first (krb5_context context,
|
||||
return KRB5_CC_END;
|
||||
}
|
||||
|
||||
asprintf(&name, "credIteration%luPid%d",
|
||||
ret = asprintf(&name, "credIteration%luPid%d",
|
||||
(unsigned long)ctx, (int)getpid());
|
||||
if (name == NULL) {
|
||||
if (ret < 0 || name == NULL) {
|
||||
krb5_set_error_message(context, ENOMEM,
|
||||
N_("malloc: out of memory", ""));
|
||||
free(ctx);
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
asprintf(&ctx->drop, "DROP TABLE %s", name);
|
||||
if (ctx->drop == NULL) {
|
||||
ret = asprintf(&ctx->drop, "DROP TABLE %s", name);
|
||||
if (ret < 0 || ctx->drop == NULL) {
|
||||
krb5_set_error_message(context, ENOMEM,
|
||||
N_("malloc: out of memory", ""));
|
||||
free(name);
|
||||
@@ -920,12 +920,19 @@ scc_get_first (krb5_context context,
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
asprintf(&str, "CREATE TEMPORARY TABLE %s "
|
||||
ret = asprintf(&str, "CREATE TEMPORARY TABLE %s "
|
||||
"AS SELECT oid,created_at FROM credentials WHERE cid = %lu",
|
||||
name, (unsigned long)s->cid);
|
||||
if (ret < 0 || str == NULL) {
|
||||
free(ctx->drop);
|
||||
free(name);
|
||||
free(ctx);
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
ret = exec_stmt(context, s->db, str, KRB5_CC_IO);
|
||||
free(str);
|
||||
str = NULL;
|
||||
if (ret) {
|
||||
free(ctx->drop);
|
||||
free(name);
|
||||
@@ -933,8 +940,8 @@ scc_get_first (krb5_context context,
|
||||
return ret;
|
||||
}
|
||||
|
||||
asprintf(&str, "SELECT oid FROM %s ORDER BY created_at", name);
|
||||
if (str == NULL) {
|
||||
ret = asprintf(&str, "SELECT oid FROM %s ORDER BY created_at", name);
|
||||
if (ret < 0 || str == NULL) {
|
||||
exec_stmt(context, s->db, ctx->drop, 0);
|
||||
free(ctx->drop);
|
||||
free(name);
|
||||
@@ -944,6 +951,7 @@ scc_get_first (krb5_context context,
|
||||
|
||||
ret = prepare_stmt(context, s->db, &ctx->stmt, str);
|
||||
free(str);
|
||||
str = NULL;
|
||||
free(name);
|
||||
if (ret) {
|
||||
exec_stmt(context, s->db, ctx->drop, 0);
|
||||
@@ -1148,7 +1156,7 @@ scc_get_cache_first(krb5_context context, krb5_cc_cursor *cursor)
|
||||
{
|
||||
struct cache_iter *ctx;
|
||||
krb5_error_code ret;
|
||||
char *name, *str;
|
||||
char *name = NULL, *str = NULL;
|
||||
|
||||
*cursor = NULL;
|
||||
|
||||
@@ -1165,9 +1173,9 @@ scc_get_cache_first(krb5_context context, krb5_cc_cursor *cursor)
|
||||
return ret;
|
||||
}
|
||||
|
||||
asprintf(&name, "cacheIteration%luPid%d",
|
||||
ret = asprintf(&name, "cacheIteration%luPid%d",
|
||||
(unsigned long)ctx, (int)getpid());
|
||||
if (name == NULL) {
|
||||
if (ret < 0 || name == NULL) {
|
||||
krb5_set_error_message(context, ENOMEM,
|
||||
N_("malloc: out of memory", ""));
|
||||
sqlite3_close(ctx->db);
|
||||
@@ -1175,8 +1183,8 @@ scc_get_cache_first(krb5_context context, krb5_cc_cursor *cursor)
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
asprintf(&ctx->drop, "DROP TABLE %s", name);
|
||||
if (ctx->drop == NULL) {
|
||||
ret = asprintf(&ctx->drop, "DROP TABLE %s", name);
|
||||
if (ret < 0 || ctx->drop == NULL) {
|
||||
krb5_set_error_message(context, ENOMEM,
|
||||
N_("malloc: out of memory", ""));
|
||||
sqlite3_close(ctx->db);
|
||||
@@ -1185,9 +1193,9 @@ scc_get_cache_first(krb5_context context, krb5_cc_cursor *cursor)
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
asprintf(&str, "CREATE TEMPORARY TABLE %s AS SELECT name FROM caches",
|
||||
ret = asprintf(&str, "CREATE TEMPORARY TABLE %s AS SELECT name FROM caches",
|
||||
name);
|
||||
if (str == NULL) {
|
||||
if (ret < 0 || str == NULL) {
|
||||
krb5_set_error_message(context, ENOMEM,
|
||||
N_("malloc: out of memory", ""));
|
||||
sqlite3_close(ctx->db);
|
||||
@@ -1199,6 +1207,7 @@ scc_get_cache_first(krb5_context context, krb5_cc_cursor *cursor)
|
||||
|
||||
ret = exec_stmt(context, ctx->db, str, KRB5_CC_IO);
|
||||
free(str);
|
||||
str = NULL;
|
||||
if (ret) {
|
||||
sqlite3_close(ctx->db);
|
||||
free(name);
|
||||
@@ -1207,9 +1216,9 @@ scc_get_cache_first(krb5_context context, krb5_cc_cursor *cursor)
|
||||
return ret;
|
||||
}
|
||||
|
||||
asprintf(&str, "SELECT name FROM %s", name);
|
||||
ret = asprintf(&str, "SELECT name FROM %s", name);
|
||||
free(name);
|
||||
if (str == NULL) {
|
||||
if (ret < 0 || str == NULL) {
|
||||
exec_stmt(context, ctx->db, ctx->drop, 0);
|
||||
sqlite3_close(ctx->db);
|
||||
free(name);
|
||||
@@ -1356,13 +1365,15 @@ scc_get_default_name(krb5_context context, char **str)
|
||||
krb5_error_code ret;
|
||||
char *name;
|
||||
|
||||
*str = NULL;
|
||||
|
||||
ret = get_def_name(context, &name);
|
||||
if (ret)
|
||||
return _krb5_expand_default_cc_name(context, KRB5_SCACHE_NAME, str);
|
||||
|
||||
asprintf(str, "SCC:%s", name);
|
||||
ret = asprintf(str, "SCC:%s", name);
|
||||
free(name);
|
||||
if (*str == NULL) {
|
||||
if (ret < 0 || *str == NULL) {
|
||||
krb5_set_error_message(context, ENOMEM,
|
||||
N_("malloc: out of memory", ""));
|
||||
return ENOMEM;
|
||||
|
Reference in New Issue
Block a user