]> granicus.if.org Git - postgresql/commitdiff
Ethernet MAC addresses (macaddr type) are not compared correctly for
authorBruce Momjian <bruce@momjian.us>
Thu, 16 Dec 1999 01:30:49 +0000 (01:30 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 16 Dec 1999 01:30:49 +0000 (01:30 +0000)
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

src/backend/utils/adt/mac.c

index 28fa20057e2c9eeafa9df15c060318b4e4a54185..02fc1863b60055b6fbfb14d01da1ca93457a5fe4 100644 (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.