31 Commits

Author SHA1 Message Date
31ee9c0ce5 kadmind: Quiet tainted data warning 2023-01-04 01:36:03 -06:00
133f517482 rewrite fallthrough to HEIM_FALLTHROUGH to deal with new Apple SDKs
Apple clang version 14.0.0 (clang-1400.0.17.3.1) fails the build
because stds.h defines `fallthrough` as a macro which is then
expanded when base.h evaluates

  # if __has_attribute(fallthrough) && __clang_major__ >= 5

The macOS SDK defines `DISPATCH_FALLTHROUGH` as the macro instead
of `fallthrough`.

This change replaces the use of `fallthrough` in the tree with
`HEIM_FALLTHROUGH` and updates the declaration in configure logic
to define `HEIM_FALLTHROUGH` based upon existing definitions
(if any) of `fallthrough` or `DISPATCH_FALLTHROUGH`.
2022-09-16 15:58:45 -04:00
04527412e3 Follow the Linux kernel's lead on "fallthrough"
The pseudo keyword 'fallthrough' is defined such that case statement
blocks must end with any of these keywords:
 * break;
 * fallthrough;
 * continue;
 * goto <label>;
 * return [expression];
 *
 *  gcc: https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#Statement-Attributes

The macro is defined either as

  __attribute__((__fallthrough__))

or as

  do {} while (0)  /* fallthrough */

not including the semicolon.

This change implements the Linux kernel style and updates several locations
where "/*fallthrough*/ and /* FALLTHROUGH */ were not previously replaced.

Externally imported code such as libedit, libtommath and sqlite are
restored to their unaltered state.

Change-Id: I69db8167b0d5884f55d96d72de3059a0235a1ba3
2022-01-21 10:39:47 -05:00
f341fa7721 prevent unintended sign extension errors
When an unsigned char is shifted << 24 bits its type will be
promoted to signed 32-bits.   If the value is then assigned to
an unsigned 64-bit value sign extension will occur.

Prevent the unwanted sign extension by explicitly casting the
value to unsigned long before shifting.

Change-Id: Iabeac0f17dc3229a2dc89abe71960a8ffbf523f8
2022-01-16 00:23:05 -05:00
c607135a03 Use fallthrough statement attribute (moar) 2022-01-14 16:53:34 -06:00
ddc6113610 Use fallthrough statement attribute 2022-01-14 16:32:58 -06:00
ea83f068e9 kadm5/kadmin: Add read-only mode
Now we can have read-only kadmind instances.
2020-09-08 00:25:40 -05:00
7d50445d1b Generic: Fix warnings (fallthrough mosty) 2020-09-07 22:04:59 -05:00
750cfc092c fix 00c590e4ff
Change-Id: I73623d71842086374ae58c6e751395fd6925a704
2019-01-04 01:41:23 -05:00
00c590e4ff fix null pointer dereference errors
Change-Id: I82a849afe9f432a1084ad2505ce88b1fe4d3d3af
2019-01-04 01:02:59 -05:00
f38089257b Misc fixes (coverity) 2016-11-20 17:43:51 -06:00
dba026b5ef Introduce and apply krb5_storage_from_socket
On Windows a file descriptor is an int value allocated by the
local module instance of the C Run Time Library.  A socket handle is a
SOCKET value allocated by a Winsock Provider for the requested family and
protocol.   These two values cannot be mixed and there is no mechanism for
converting between the two.   The _get_osfhandle() and _open_osfhandle()
functions can work with a standard HANDLE (file, pipe, etc) but cannot be
used for a SOCKET.

The Heimdal krb5_storage_from_fd() routine counted on the osf conversion
functions working on SOCKET values.  Since they do not any attempt to call
krb5_storage_from_fd() on a socket resulted in an assertion being thrown
by the C RTL.

Another problem is SOCKET value truncation when storing a 64-bit value
into a 32-bit int.

To address these problems a new krb5_storage_from_socket() routine is
introduced.  This routine setups a krb5_storage that stores a socket value
as a rk_socket_t and provides a set of helper routines that always use
network ready functions.

The krb5_storage_from_fd() routines no longer use net_read() and
net_write() but provide helpers that follow their logic so that pipes can
be processed.

All call sites that allocate a socket now store the socket as rk_socket_t
and call krb5_storage_from_socket().

All locations that previously called the bare close() on a socket value
now call rk_closesocket().

Change-Id: I045f775b2a5dbf5cf803751409490bc27fffe597
2014-02-04 23:20:08 -05:00
0879b9831a remove trailing whitespace 2011-05-21 11:57:31 -07:00
f5f9014c90 Warning fixes from Christos Zoulas
- shadowed variables
- signed/unsigned confusion
- const lossage
- incomplete structure initializations
- unused code
2011-04-29 20:25:05 -07:00
eac56da073 Rename struct to not clash with aix header sys/proc.h
Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
2010-09-16 22:47:27 -07:00
be73fa4687 use krb5_socket_t 2009-12-23 14:12:38 +01:00
a1942c1bad Use SOCKET data type instead of ints for sockets in kadmin
Also use the new mini_inetd() API
2009-11-24 10:17:51 -08:00
6c28d3a772 Switch __FUNCTION__ to __FILE__ since Sun Developer studio doesn't support the former 2009-08-15 05:59:35 +02:00
eff4906254 use kadm5_s_init_with_password_ctx
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24549 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-30 16:48:55 +00:00
be2f540704 drop <gssapi/*
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24545 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-30 16:48:14 +00:00
9a96b6bc44 fix out of range bug
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24479 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-25 20:49:22 +00:00
9cfb421fc5 fix out of range bug
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24477 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-25 20:49:03 +00:00
bfda4404bf use gssapi/*.h
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24390 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-25 00:36:19 +00:00
92a1b951fe make xdr function static
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24316 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 23:05:01 +00:00
82c4b8765f move xdr function here
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24313 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 22:02:31 +00:00
d3cef9ce45 plug memory leaks and other bugs
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24247 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 21:43:11 +00:00
3223c11aab verify verf header
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24244 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 21:42:42 +00:00
8f80188c3f cleanup
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24243 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 21:42:32 +00:00
a2626628ea plug memory leak
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24242 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 21:42:23 +00:00
e3f856b566 remove debug log
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24241 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 21:42:14 +00:00
8d16bb0b68 add support for add,get,delete,chrand for the MIT kadmin protocol
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24240 ec53bebd-3082-4978-b11e-865c3cabbd6b
2009-01-11 21:42:02 +00:00