aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/stack/stack.c
Commit message (Collapse)AuthorAgeFilesLines
* Copyright consolidation 06/10Rich Salz2016-05-171-54/+7
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* if no comparison function set make sk_sort no opDr. Stephen Henson2016-02-061-1/+1
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Remove /* foo.c */ commentsRich Salz2016-01-261-1/+0
| | | | | | | | | | | | This was done by the following find . -name '*.[ch]' | /tmp/pl where /tmp/pl is the following three-line script: print unless $. == 1 && m@/\* .*\.[ch] \*/@; close ARGV if eof; # Close file to reset $. And then some hand-editing of other files. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
* More zalloc nitsRich Salz2015-09-041-1/+1
| | | | | | Found on GitHub by dimman Reviewed-by: Richard Levitte <levitte@openssl.org>
* remove 0 assignments.Rich Salz2015-09-031-6/+2
| | | | | | | After openssl_zalloc, cleanup more "set to 0/NULL" assignments. Many are from github feedback. Reviewed-by: Tim Hudson <tjh@openssl.org>
* RT3999: Remove sub-component version stringsRich Salz2015-08-101-2/+0
| | | | | | Especially since after the #ifdef cleanups this is not useful. Reviewed-by: Matt Caswell <matt@openssl.org>
* Identify and move common internal libcrypto header filesRichard Levitte2015-05-141-1/+1
| | | | | | | | | | | | | There are header files in crypto/ that are used by a number of crypto/ submodules. Move those to crypto/include/internal and adapt the affected source code and Makefiles. The header files that got moved are: crypto/cryptolib.h crypto/md32_common.h Reviewed-by: Rich Salz <rsalz@openssl.org>
* memset, memcpy, sizeof consistency fixesRich Salz2015-05-051-1/+1
| | | | | | | | Just as with the OPENSSL_malloc calls, consistently use sizeof(*ptr) for memset and memcpy. Remove needless casts for those functions. For memset, replace alternative forms of zero with 0. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Use safer sizeof variant in mallocRich Salz2015-05-041-2/+2
| | | | | | | | | | | | | For a local variable: TYPE *p; Allocations like this are "risky": p = OPENSSL_malloc(sizeof(TYPE)); if the type of p changes, and the malloc call isn't updated, you could get memory corruption. Instead do this: p = OPENSSL_malloc(sizeof(*p)); Also fixed a few memset() calls that I noticed while doing this. Reviewed-by: Richard Levitte <levitte@openssl.org>
* free NULL cleanup -- codaRich Salz2015-05-011-2/+1
| | | | | | | | After the finale, the "real" final part. :) Do a recursive grep with "-B1 -w [a-zA-Z0-9_]*_free" to see if any of the preceeding lines are an "if NULL" check that can be removed. Reviewed-by: Tim Hudson <tjh@openssl.org>
* free null cleanup finaleRich Salz2015-05-011-4/+2
| | | | | | Don't check for NULL before calling OPENSSL_free Reviewed-by: Richard Levitte <levitte@openssl.org>
* remove malloc castsRich Salz2015-04-281-3/+2
| | | | | | | Following ANSI C rules, remove the casts from calls to OPENSSL_malloc and OPENSSL_realloc. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Fix memset call in stack.cMatt Caswell2015-03-171-1/+1
| | | | | | | | | | The function sk_zero is supposed to zero the elements held within a stack. It uses memset to do this. However it calculates the size of each element as being sizeof(char **) instead of sizeof(char *). This probably doesn't make much practical difference in most cases, but isn't a portable assumption. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Make STACK_OF opaque.Dr. Stephen Henson2015-03-051-0/+8
| | | | Reviewed-by: Matt Caswell <matt@openssl.org>
* undef cleanup: use memmoveRich Salz2015-01-241-21/+0
| | | | Reviewed-by: Andy Polyakov <appro@openssl.org>
* Run util/openssl-format-source -v -c .Matt Caswell2015-01-221-255/+267
| | | | Reviewed-by: Tim Hudson <tjh@openssl.org>
* Further comment amendments to preserve formatting prior to source reformatMatt Caswell2015-01-061-1/+2
| | | | Reviewed-by: Tim Hudson <tjh@openssl.org>
* Implement sk_deep_copy.Viktor Dukhovni2014-06-221-0/+37
|
* Type-safe OBJ_bsearch_ex.Ben Laurie2008-10-141-18/+10
|
* More type-checking.Ben Laurie2008-06-041-34/+35
|
* Constify version strings and some structures.Dr. Stephen Henson2007-01-211-1/+1
|
* Oops!Dr. Stephen Henson2004-10-041-1/+1
|
* Fix race condition when CRL checking is enabled.Dr. Stephen Henson2004-10-041-0/+7
|
* Extend the index parameter checking from sk_value to sk_set(). Also tidy upGeoff Thorpe2004-04-211-3/+2
| | | | | | some similar code elsewhere. Thanks to Francesco Petruzzi for bringing this to my attention.
* Avoid undefined results when the parameter is out of range.Geoff Thorpe2004-04-021-1/+1
|
* Include objects.h to get a correct declaration of OBJ_bsearch_ex(),Richard Levitte2003-04-291-1/+2
| | | | not to mention the OBJ_BSEARCH_* macros.
* Add an extended variant of sk_find() which returns a non-NULL pointerRichard Levitte2003-04-291-13/+13
| | | | even if an exact match wasn't found.
* Fix a memory leak in 'sk_dup' in the case a realloc() fails. Also, tidy upGeoff Thorpe2001-05-311-5/+7
| | | | a bit of weird code in sk_new.
* Make sk_sort tolearate a NULL argument.Dr. Stephen Henson2001-01-281-1/+1
|
* Some platforms define NULL as ((void *)0). Unfortunately, a void*Richard Levitte2000-09-171-1/+1
| | | | | can't be used as a function pointer according the the standards. Use a 0 instead and there will be no trouble.
* Safe stack reorganisation in terms of function casts.Dr. Stephen Henson2000-06-161-0/+5
| | | | | | | | | | | | After some messing around this seems to work but needs a few more tests. Working out the syntax for sk_set_cmp_func() (cast it to a function that itself returns a function pointer) was painful :-( Needs some testing to see what other compilers think of this syntax. Also needs similar stuff for ASN1_SET_OF etc etc.
* Harmonize indentation.Bodo Möller2000-06-081-13/+13
|
* There have been a number of complaints from a number of sources that namesRichard Levitte2000-06-011-7/+7
| | | | | | | | | like Malloc, Realloc and especially Free conflict with already existing names on some operating systems or other packages. That is reason enough to change the names of the OpenSSL memory allocation macros to something that has a better chance of being unique, like prepending them with OPENSSL_. This change includes all the name changes needed throughout all C files.
* This is the first of two commits (didn't want to dump them all into theGeoff Thorpe2000-06-011-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | same one). However, the first will temporarily break things until the second comes through. :-) The safestack.h handling was mapping compare callbacks that externally are of the type (int (*)(type **,type **)) into the underlying callback type used by stack.[ch], which is (int (*)(void *,void *)). After some degree of digging, it appears that the callback type in the underlying stack code should use double pointers too - when the compare operations are invoked (from sk_find and sk_sort), they are being used by bsearch and qsort to compare two pointers to pointers. This change corrects the prototyping (by only casting to the (void*,void*) form at the moment it is needed by bsearch and qsort) and makes the mapping in safestack.h more transparent. It also changes from "void*" to "char*" to stay in keeping with stack.[ch]'s assumed base type of "char". Also - the "const" situation was that safestack.h was throwing away "const"s, and to compound the problem - a close examination of stack.c showed that (const char **) is not really achieving what it is supposed to when the callback is being invoked, what is needed is (const char * const *). So the underlying stack.[ch] and the mapping macros in safestack.h have all been altered to correct this. What will follow are the vast quantities of "const" corrections required in stack-dependant code that was being let "slip" through when safestack.h was discarding "const"s. These now all come up as compiler warnings.
* sk_value was also suffering from de-const-ification.Geoff Thorpe2000-05-311-1/+1
| | | | Also, add in a couple of missing declarations in pkcs7 code.
* All the little functions created by the IMPLEMENT_STACK_OF() macro willGeoff Thorpe2000-05-311-1/+1
| | | | | | | | | | | cast their type-specific STACK into a real STACK and call the underlying sk_*** function. The problem is that if the STACK_OF(..) parameter being passed in has a "const *" qualifier, it is discarded by the cast. I'm currently implementing a fix for this but in the mean-time, this is one case I noticed (a few type-specific sk_**_num() functions pass in const type-specific stacks). If there are other errors in the code where consts are being discarded, we will similarly not notice them. yuck.
* Get rid of more non-ANSI declarations.Ulf Möller2000-05-151-11/+10
|
* ispell (and minor modifications)Ulf Möller2000-02-031-1/+1
|
* Seek out and destroy another evil cast.Ulf Möller2000-01-301-3/+3
|
* Another safe stack.Ben Laurie1999-05-301-6/+14
|
* New functions sk_set, sk_value and sk_num to replace existing macros: this isDr. Stephen Henson1999-05-191-0/+17
| | | | to minimise the effects on existing code.
* Add PKCS#12 documentation and new option in x509 to add certificate extensions.Dr. Stephen Henson1999-04-271-1/+4
|
* Remove NOPROTO definitions and error code comments.Ulf Möller1999-04-261-5/+0
|
* Change #include filenames from <foo.h> to <openssl.h>.Bodo Möller1999-04-231-1/+1
| | | | | | Submitted by: Reviewed by: PR:
* Change functions to ANSI C.Ulf Möller1999-04-191-37/+14
|
* Massive constification.Ben Laurie1999-04-171-1/+1
|
* Fix security hole.Ben Laurie1999-03-221-1/+1
|
* Add functions to add certs to stacks, used for CA file/path stuff in servers.Ben Laurie1999-02-281-1/+5
|
* Fix version stuff:Ralf S. Engelschall1998-12-311-1/+1
| | | | | | | | | | | 1. The already released version was 0.9.1c and not 0.9.1b 2. The next release should be 0.9.2 and not 0.9.1d, because first the changes are already too large, second we should avoid any more 0.9.1x confusions and third, the Apache version semantics of VERSION.REVISION.PATCHLEVEL for the version string is reasonable (and here .2 is already just a patchlevel and not major change). tVS: ----------------------------------------------------------------------
* Fix for sk_insert bug: it never worked properly.stephen1998-12-311-1/+1
| | | | | Allow explicit tag asn macros to handle indefinite length constructed stuff: without this certain "certificates" can't be read in.