svn commit: r236251 - head/sys/net

Jung-uk Kim jkim at FreeBSD.org
Tue May 29 18:44:54 UTC 2012


Author: jkim
Date: Tue May 29 18:44:53 2012
New Revision: 236251
URL: http://svn.freebsd.org/changeset/base/236251

Log:
  Fix 32-bit shim for BIOCSETF to drop all packets buffered on the descriptor
  and reset statistics as it should.
  
  MFC after:	3 days

Modified:
  head/sys/net/bpf.c

Modified: head/sys/net/bpf.c
==============================================================================
--- head/sys/net/bpf.c	Tue May 29 18:11:45 2012	(r236250)
+++ head/sys/net/bpf.c	Tue May 29 18:44:53 2012	(r236251)
@@ -1718,13 +1718,23 @@ bpf_setf(struct bpf_d *d, struct bpf_pro
 	struct bpf_program32 *fp32;
 	struct bpf_program fp_swab;
 
-	if (cmd == BIOCSETWF32 || cmd == BIOCSETF32 || cmd == BIOCSETFNR32) {
+	switch (cmd) {
+	case BIOCSETF32:
+	case BIOCSETWF32:
+	case BIOCSETFNR32:
 		fp32 = (struct bpf_program32 *)fp;
 		fp_swab.bf_len = fp32->bf_len;
 		fp_swab.bf_insns = (struct bpf_insn *)(uintptr_t)fp32->bf_insns;
 		fp = &fp_swab;
-		if (cmd == BIOCSETWF32)
+		switch (cmd) {
+		case BIOCSETF32:
+			cmd = BIOCSETF;
+			break;
+		case BIOCSETWF32:
 			cmd = BIOCSETWF;
+			break;
+		}
+		break;
 	}
 #endif
 	/*


More information about the svn-src-all mailing list