krb4 library major version bump

Tom Yu tlyu at MIT.EDU
Fri Feb 7 02:46:07 EST 2003


>>>>> "raeburn" == Ken Raeburn <raeburn at MIT.EDU> writes:

raeburn> Currently, aklog is crashing for me while printing an error message.
raeburn> It's getting the error message by indexing into krb_err_txt.  In
raeburn> previous releases, this was a char*[256] array.  Now it's a char**.
raeburn> That's another incompatible change.  Tom checked it in in December as
raeburn> part of merging some of the Mac code.  Is this change required?

Hm.  It used to be

const char *const krb_err_txt [256];

which is an array of const pointers to const char, and now it's

const char * const * const krb_err_txt;

which is a const pointer to const pointer to const char.

I think the only significant differences have to do with the
qualifiers, since an array type should be equivalent to a const
pointer to its member type.  I'm still puzzled as to why that would
cause a problem.

The reason the change is needed is that we're doing a gross hack to
get krb_err_txt from the generated krb_err.c.  Is there an actual ABI
difference between (const char * const []) and (const char * const * const)?
That would seem rather broken.

---Tom


More information about the krbdev mailing list