Module Name:    src
Committed By:   dyoung
Date:           Wed Jan 26 00:55:42 UTC 2011

Modified Files:
        src/sys/external/isc/atheros_hal/dist: ah_internal.h

Log Message:
Protect against a NULL pointer dereference that I've seen in the wild.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/isc/atheros_hal/dist/ah_internal.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/isc/atheros_hal/dist/ah_internal.h
diff -u src/sys/external/isc/atheros_hal/dist/ah_internal.h:1.3 src/sys/external/isc/atheros_hal/dist/ah_internal.h:1.4
--- src/sys/external/isc/atheros_hal/dist/ah_internal.h:1.3	Thu May 14 09:07:49 2009
+++ src/sys/external/isc/atheros_hal/dist/ah_internal.h	Wed Jan 26 00:55:42 2011
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ah_internal.h,v 1.3 2009/05/14 09:07:49 reinoud Exp $
+ * $Id: ah_internal.h,v 1.4 2011/01/26 00:55:42 dyoung Exp $
  */
 #ifndef _ATH_AH_INTERAL_H_
 #define _ATH_AH_INTERAL_H_
@@ -324,8 +324,11 @@
 #define	ath_hal_getNoiseFloor(_ah, _nfArray) \
 	AH_PRIVATE(_ah)->ah_getNoiseFloor(_ah, _nfArray)
 
-#define	ath_hal_eepromDetach(_ah) \
-	AH_PRIVATE(_ah)->ah_eepromDetach(_ah)
+#define	ath_hal_eepromDetach(_ah)			\
+do {							\
+	if (AH_PRIVATE(_ah)->ah_eepromDetach != NULL)	\
+		AH_PRIVATE(_ah)->ah_eepromDetach(_ah);	\
+} while (/*CONSTCOND*/0)
 #define	ath_hal_eepromGet(_ah, _param, _val) \
 	AH_PRIVATE(_ah)->ah_eepromGet(_ah, _param, _val)
 #define	ath_hal_eepromSet(_ah, _param, _val) \

Reply via email to