1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-11 16:58:40 +03:00

I received a bug report from Massimo Campostrini in Pisa. There are a pair

of "front-end" functions with the same bug each.

Fixed.
(This used to be commit 487a2e13b7913e512fa01e736daaccc3858eb689)
This commit is contained in:
Christopher R. Hertel 1998-10-21 19:00:44 +00:00
parent 5b7df7a752
commit 8c307cee7a
2 changed files with 53 additions and 10 deletions

View File

@ -26,7 +26,14 @@
*
* -------------------------------------------------------------------------- **
*
* Log: ubi_BinTree.c,v
* Log: ubi_BinTree.c,v
* Revision 4.7 1998/10/21 06:14:42 crh
* Fixed bugs in FirstOf() and LastOf() reported by Massimo Campostrini.
* See function comments.
*
* Revision 4.6 1998/07/25 17:02:10 crh
* Added the ubi_trNewTree() macro.
*
* Revision 4.5 1998/06/04 21:29:27 crh
* Upper-cased defined constants (eg UBI_BINTREE_H) in some header files.
* This is more "standard", and is what people expect. Weird, eh?
@ -155,9 +162,9 @@
*/
static char ModuleID[] = "ubi_BinTree\n\
\tRevision: 4.5 \n\
\tDate: 1998/06/04 21:29:27 \n\
\tAuthor: crh \n";
\tRevision: 4.7\n\
\tDate: 1998/10/21 06:14:42\n\
\tAuthor: crh\n";
/* ========================================================================== **
* Internal (private) functions.
@ -899,11 +906,15 @@ ubi_btNodePtr ubi_btFirstOf( ubi_btRootPtr RootPtr,
* matching <FindMe>.
* Notes: Node *p MUST be in the set of nodes with keys matching
* <FindMe>. If not, this function will return NULL.
*
* 4.7: Bug found & fixed by Massimo Campostrini,
* Istituto Nazionale di Fisica Nucleare, Sezione di Pisa.
*
* ------------------------------------------------------------------------ **
*/
{
/* If our starting point is invalid, return NULL. */
if( !p || ubi_trAbNormal( (*(RootPtr->cmp))( MatchMe, p ) != ubi_trEQUAL ) )
if( !p || (ubi_trEQUAL != ubi_trAbNormal( (*(RootPtr->cmp))( MatchMe, p ) )) )
return( NULL );
return( Border( RootPtr, MatchMe, p, ubi_trLEFT ) );
} /* ubi_btFirstOf */
@ -924,11 +935,15 @@ ubi_btNodePtr ubi_btLastOf( ubi_btRootPtr RootPtr,
* matching <FindMe>.
* Notes: Node *p MUST be in the set of nodes with keys matching
* <FindMe>. If not, this function will return NULL.
*
* 4.7: Bug found & fixed by Massimo Campostrini,
* Istituto Nazionale di Fisica Nucleare, Sezione di Pisa.
*
* ------------------------------------------------------------------------ **
*/
{
/* If our starting point is invalid, return NULL. */
if( !p || ubi_trAbNormal( (*(RootPtr->cmp))( MatchMe, p ) != ubi_trEQUAL ) )
if( !p || (ubi_trEQUAL != ubi_trAbNormal( (*(RootPtr->cmp))( MatchMe, p ) )) )
return( NULL );
return( Border( RootPtr, MatchMe, p, ubi_trRIGHT ) );
} /* ubi_btLastOf */

View File

@ -28,7 +28,14 @@
*
* -------------------------------------------------------------------------- **
*
* Log: ubi_BinTree.h,v
* Log: ubi_BinTree.h,v
* Revision 4.7 1998/10/21 06:15:07 crh
* Fixed bugs in FirstOf() and LastOf() reported by Massimo Campostrini.
* See function comments.
*
* Revision 4.6 1998/07/25 17:02:10 crh
* Added the ubi_trNewTree() macro.
*
* Revision 4.5 1998/06/04 21:29:27 crh
* Upper-cased defined constants (eg UBI_BINTREE_H) in some header files.
* This is more "standard", and is what people expect. Weird, eh?
@ -245,15 +252,28 @@ typedef enum {
((ubi_trOVERWRITE & ((A)->flags))?(ubi_trTRUE):(ubi_trFALSE))
/* -------------------------------------------------------------------------- **
* A quickie for consistency.
* ubi_trCount() - Given a pointer to a tree root, this macro returns the
* number of nodes currently in the tree.
* Additional Macros...
*
* ubi_trCount() - Given a pointer to a tree root, this macro returns the
* number of nodes currently in the tree.
*
* ubi_trNewTree() - This macro makes it easy to declare and initialize a
* tree header in one step. The line
*
* static ubi_trNewTree( MyTree, cmpfn, ubi_trDUPKEY );
*
* is equivalent to
*
* static ubi_trRoot MyTree[1]
* = {{ NULL, cmpfn, 0, ubi_trDUPKEY }};
*
* -------------------------------------------------------------------------- **
*/
#define ubi_trCount( R ) (((ubi_trRootPtr)(R))->count)
#define ubi_trNewTree( N, C, F ) ubi_trRoot (N)[1] = {{ NULL, (C), 0, (F) }}
/* -------------------------------------------------------------------------- **
* Typedefs...
*
@ -620,6 +640,10 @@ ubi_btNodePtr ubi_btFirstOf( ubi_btRootPtr RootPtr,
* matching <FindMe>.
* Notes: Node *p MUST be in the set of nodes with keys matching
* <FindMe>. If not, this function will return NULL.
*
* 4.7: Bug found & fixed by Massimo Campostrini,
* Istituto Nazionale di Fisica Nucleare, Sezione di Pisa.
*
* ------------------------------------------------------------------------ **
*/
@ -639,6 +663,10 @@ ubi_btNodePtr ubi_btLastOf( ubi_btRootPtr RootPtr,
* matching <FindMe>.
* Notes: Node *p MUST be in the set of nodes with keys matching
* <FindMe>. If not, this function will return NULL.
*
* 4.7: Bug found & fixed by Massimo Campostrini,
* Istituto Nazionale di Fisica Nucleare, Sezione di Pisa.
*
* ------------------------------------------------------------------------ **
*/