From: Tom Yu Date: Tue, 14 Apr 2009 21:07:15 +0000 (+0000) Subject: pull up r22078 from trunk X-Git-Tag: krb5-1.7-beta1~49 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f828e98a1d45f0148aabb4203c7ca62b2e1dbf09;p=krb5.git pull up r22078 from trunk ------------------------------------------------------------------------ r22078 | ghudson | 2009-03-11 18:11:06 -0400 (Wed, 11 Mar 2009) | 9 lines Changed paths: M /trunk/src/include/k5-int.h M /trunk/src/include/krb5/krb5.hin M /trunk/src/lib/krb5/krb/kerrs.c M /trunk/src/lib/krb5/libkrb5.exports ticket: 6407 subject: Make a working krb5_copy_error_message target_version: 1.7 tags: pullup The krb5_copy_error_state macro wasn't used, didn't work, and didn't need to be a macro. Replace it with an exported API function named krb5_copy_error_message. ticket: 6407 version_fixed: 1.7 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-7@22218 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 2b937112d..7dae8cfc9 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -2326,9 +2326,6 @@ krb5int_c_mandatory_cksumtype (krb5_context, krb5_enctype, krb5_cksumtype *); extern int krb5int_crypto_init (void); extern int krb5int_prng_init(void); -#define krb5_copy_error_state(CTX, OCTX) \ - krb5int_set_error(&(CTX)->errinfo, (OCTX)->errinfo.code, "%s", (OCTX)->errinfo.msg) - /* * Referral definitions, debugging hooks, and subfunctions. */ diff --git a/src/include/krb5/krb5.hin b/src/include/krb5/krb5.hin index 72a412a85..7d738a670 100644 --- a/src/include/krb5/krb5.hin +++ b/src/include/krb5/krb5.hin @@ -2490,6 +2490,9 @@ krb5_vset_error_message (krb5_context, krb5_error_code, const char *, va_list) __attribute__((__format__(__printf__, 3, 0))) #endif ; +void KRB5_CALLCONV +krb5_copy_error_message (krb5_context, krb5_context); + /* * The behavior of krb5_get_error_message is only defined the first * time it is called after a failed call to a krb5 function using the diff --git a/src/lib/krb5/krb/kerrs.c b/src/lib/krb5/krb/kerrs.c index 77f497688..647076485 100644 --- a/src/lib/krb5/krb/kerrs.c +++ b/src/lib/krb5/krb/kerrs.c @@ -75,6 +75,20 @@ krb5_vset_error_message (krb5_context ctx, krb5_error_code code, #endif } +/* Set the error message state of dest_ctx to that of src_ctx. */ +void KRB5_CALLCONV +krb5_copy_error_message (krb5_context dest_ctx, krb5_context src_ctx) +{ + if (dest_ctx == src_ctx) + return; + if (src_ctx->err.msg) { + krb5int_set_error(&dest_ctx->err, src_ctx->err.code, "%s", + src_ctx->err.msg); + } else { + krb5int_clear_error(dest_ctx); + } +} + const char * KRB5_CALLCONV krb5_get_error_message (krb5_context ctx, krb5_error_code code) { diff --git a/src/lib/krb5/libkrb5.exports b/src/lib/krb5/libkrb5.exports index 86984764b..665fdfe37 100644 --- a/src/lib/krb5/libkrb5.exports +++ b/src/lib/krb5/libkrb5.exports @@ -172,6 +172,7 @@ krb5_copy_checksum krb5_copy_context krb5_copy_creds krb5_copy_data +krb5_copy_error_message krb5_copy_keyblock krb5_copy_keyblock_contents krb5_copy_principal