看板 FB_hackers 關於我們 聯絡資訊
Thanks for the pointer... Julian and Sam also sent this to me on the SCTP side. The local CVS repository on lakerest.net now has this fix in it.. and others... I have added this to the queue to go in to patchset 15.. (I am still waiting on re for patchset 14). R Dag-Erling Sm鷨grav wrote: > Dave Jones <davej@codemonkey.org.uk> writes: > >>A grep I crafted to pick up on some common bugs happened upon >>a copy of the FreeBSD CVS tree that I happened to have handy >>and found the bugs below where the 2nd & 3rd arguments to >>memset calls have been swapped. >>[...] >>--- src/sys/netinet/sctp_output.c~ 2007-08-14 15:44:11.000000000 -0400 >>+++ src/sys/netinet/sctp_output.c 2007-08-14 15:44:27.000000000 -0400 >>@@ -6331,7 +6331,7 @@ out_gu: >> rcv_flags |= SCTP_DATA_UNORDERED; >> } >> /* clear out the chunk before setting up */ >>- memset(chk, sizeof(*chk), 0); >>+ memset(chk, 0, sizeof(*chk)); >> chk->rec.data.rcv_flags = rcv_flags; >> if (SCTP_BUF_IS_EXTENDED(sp->data)) { >> chk->copy_by_ref = 1; > > > Pointy hat to rrs@. > > >>--- src/usr.sbin/nscd/agents/services.c~ 2007-08-14 15:44:33.000000000 -0400 >>+++ src/usr.sbin/nscd/agents/services.c 2007-08-14 15:44:41.000000000 -0400 >>@@ -171,7 +171,7 @@ services_lookup_func(const char *key, si >> if (size > 0) { >> proto = (char *)malloc(size + 1); >> assert(proto != NULL); >>- memset(proto, size + 1, 0); >>+ memset(proto, 0, size + 1); >> memcpy(proto, key + sizeof(enum nss_lookup_type) + >> sizeof(int), size); >> } >>--- src/usr.sbin/cached/agents/services.c~ 2007-08-14 15:44:45.000000000 -0400 >>+++ src/usr.sbin/cached/agents/services.c 2007-08-14 15:44:52.000000000 -0400 >>@@ -171,7 +171,7 @@ services_lookup_func(const char *key, si >> if (size > 0) { >> proto = (char *)malloc(size + 1); >> assert(proto != NULL); >>- memset(proto, size + 1, 0); >>+ memset(proto, 0, size + 1); >> memcpy(proto, key + sizeof(enum nss_lookup_type) + >> sizeof(int), size); >> } > > > These two are actually the same file - cached is in the process of being > renamed to nscd. Pointy hat to bushman@. > > > >>--- src/contrib/gdb/gdb/std-regs.c~ 2007-08-14 15:44:56.000000000 -0400 >>+++ src/contrib/gdb/gdb/std-regs.c 2007-08-14 15:45:22.000000000 -0400 >>@@ -61,7 +61,7 @@ value_of_builtin_frame_reg (struct frame >> val = allocate_value (builtin_type_frame_reg); >> VALUE_LVAL (val) = not_lval; >> buf = VALUE_CONTENTS_RAW (val); >>- memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0); >>+ memset (buf, 0, TYPE_LENGTH (VALUE_TYPE (val))); >> /* frame.base. */ >> if (frame != NULL) >> ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, >>@@ -87,7 +87,7 @@ value_of_builtin_frame_fp_reg (struct fr >> struct value *val = allocate_value (builtin_type_void_data_ptr); >> char *buf = VALUE_CONTENTS_RAW (val); >> if (frame == NULL) >>- memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0); >>+ memset (buf, 0, TYPE_LENGTH (VALUE_TYPE (val))); >> else >> ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, >> get_frame_base_address (frame)); >>@@ -105,7 +105,7 @@ value_of_builtin_frame_pc_reg (struct fr >> struct value *val = allocate_value (builtin_type_void_data_ptr); >> char *buf = VALUE_CONTENTS_RAW (val); >> if (frame == NULL) >>- memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0); >>+ memset (buf, 0, TYPE_LENGTH (VALUE_TYPE (val))); >> else >> ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, >> get_frame_pc (frame)); >>--- src/contrib/gdb/gdb/remote.c~ 2007-08-14 15:45:25.000000000 -0400 >>+++ src/contrib/gdb/gdb/remote.c 2007-08-14 15:45:37.000000000 -0400 >>@@ -3463,7 +3463,7 @@ remote_store_registers (int regnum) >> { >> int i; >> regs = alloca (rs->sizeof_g_packet); >>- memset (regs, rs->sizeof_g_packet, 0); >>+ memset (regs, 0, rs->sizeof_g_packet); >> for (i = 0; i < NUM_REGS + NUM_PSEUDO_REGS; i++) >> { >> struct packet_reg *r = &rs->regs[i]; > > > These should go upstream to the gdb maintainers (bug-gdb@gnu.org). > > DES -- Randall Stewart NSSTG - Cisco Systems Inc. 803-345-0369 <or> 803-317-4952 (cell) _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"