Ethernet MAC addresses (macaddr type) are not compared correctly for

equality.  The lobits macro is wrong and extracts the wrong set of
bits out of the structure.

To exhibit the problem:

select '000000:000000'::macaddr = '000000:110000'::macaddr ;
?column?
--------
t
(1 row)

Daniel Boyd
This commit is contained in:
Bruce Momjian 1999-12-16 01:30:49 +00:00
parent 7585deb087
commit d033e17530
1 changed files with 2 additions and 2 deletions

View File

@ -1,7 +1,7 @@
/*
* PostgreSQL type definitions for MAC addresses.
*
* $Id: mac.c,v 1.13 1999/07/17 20:17:57 momjian Exp $
* $Id: mac.c,v 1.14 1999/12/16 01:30:49 momjian Exp $
*/
@ -132,7 +132,7 @@ manufacturer manufacturers[] = {
((unsigned long)((addr->a<<16)|(addr->b<<8)|(addr->c)))
#define lobits(addr) \
((unsigned long)((addr->c<<16)|(addr->e<<8)|(addr->f)))
((unsigned long)((addr->d<<16)|(addr->e<<8)|(addr->f)))
/*
* MAC address reader. Accepts several common notations.