public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] fix: dmi_check_system
@ 2005-08-29 18:43 Robert Love
  0 siblings, 0 replies; only message in thread
From: Robert Love @ 2005-08-29 18:43 UTC (permalink / raw)
  To: Mr Morton, Linux Kernel Mailing List


Background:

	1) dmi_check_system() returns the count of the number of 
	   matches.  Zero thus means no matches.
	2) A match callback can return nonzero to stop the match
	   checking.

Bug: The count is incremented after we check for the nonzero return
value, so it does not reflect the actual count.  We could say this is
intended, for some dumb reason, except that it means that a match on the
first check returns zero--no matches--if the callback returns nonzero.

Attached patch implements the count before calling the callback and thus
before potentially short-circuiting.

	Robert Love


Signed-off-by: Robert Love <rml@novell.com>

 arch/i386/kernel/dmi_scan.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -urN linux-2.6.13/arch/i386/kernel/dmi_scan.c linux/arch/i386/kernel/dmi_scan.c
--- linux-2.6.13/arch/i386/kernel/dmi_scan.c	2005-08-29 14:28:33.000000000 -0400
+++ linux/arch/i386/kernel/dmi_scan.c	2005-08-29 14:35:06.000000000 -0400
@@ -218,9 +218,9 @@
 			/* No match */
 			goto fail;
 		}
+		count++;
 		if (d->callback && d->callback(d))
 			break;
-		count++;
 fail:		d++;
 	}
 



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-08-29 18:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-29 18:43 [patch] fix: dmi_check_system Robert Love

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox