On 09.03.13 15:52, Hartmann, O. wrote: > Am 03/09/13 15:34, schrieb hiren panchasara: >> On Mar 8, 2013 9:44 PM, "KT Sin" <ktsin_at_acm.org> wrote: >>> >>> pw is crashing with seg fault due to this change? >>> >>> >> http://svnweb.freebsd.org/base/head/lib/libutil/gr_util.c?r1=245390&r2=247919 >> >> I think the correct fix is committed with: >> http://svnweb.freebsd.org/changeset/base/248102 >> >> Hiren >>> >>> # gdb ./pw >>> GNU gdb 6.1.1 [FreeBSD] >>> Copyright 2004 Free Software Foundation, Inc. >>> GDB is free software, covered by the GNU General Public License, and you >> are >>> welcome to change it and/or distribute copies of it under certain >> conditions. >>> Type "show copying" to see the conditions. >>> There is absolutely no warranty for GDB. Type "show warranty" for >> details. >>> This GDB was configured as "amd64-marcel-freebsd"... >>> (gdb) run groupadd test123 -g 12345 >>> Starting program: /usr/src/usr.sbin/pw/pw groupadd test123 -g 12345 >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> 0x0000000080d84a4f in stpcpy () from /lib/libc.so.7 >>> (gdb) bt full >>> #0 0x0000000080d84a4f in stpcpy () from /lib/libc.so.7 >>> No symbol table info available. >>> #1 0x0000000080a5c00a in grcopy (gr=0x612ce0, newgr=0x81409100, name=0x0, >>> ndx=0) at /usr/src/lib/libutil/gr_util.c:496 >>> dst = 0x8 <Error reading address 0x8: Bad address> >>> i = 1090277153 >>> #2 0x0000000080a5bdc6 in gr_add (gr=0x612ce0, newmember=0x0) >>> at /usr/src/lib/libutil/gr_util.c:451 >>> newgr = (struct group *) 0x81409100 >>> len = 0 >>> num_mem = 0 >>> #3 0x0000000080a5bd4f in gr_dup (gr=0x612ce0) >>> at /usr/src/lib/libutil/gr_util.c:434 >>> No locals. >>> #4 0x000000000040bad7 in gr_update (grp=0x612ce0, group=0x0) at >> grupd.c:78 >>> pfd = 0 >>> tfd = 4244492 >>> gr = (struct group *) 0x0 >>> old_gr = (struct group *) 0x0 >>> #5 0x000000000040ba8f in addgrent (grp=0x612ce0) at grupd.c:111 >>> No locals. >>> #6 0x000000000040a83d in pw_group (cnf=0x612bf0, mode=0, args=0x613e78) >>> at pw_group.c:258 >>> ---Type <return> to continue, or q <return> to quit--- >>> grp = (struct group *) 0x612ce0 >>> members = (char **) 0x81485d00 >>> rc = 0 >>> a_name = (struct carg *) 0x8144c0a0 >>> a_gid = (struct carg *) 0x8144c0c0 >>> arg = (struct carg *) 0x0 >>> grmembers = 200 >>> fakegroup = {gr_name = 0x7fffffffdcb9 "test123", >>> gr_passwd = 0x40fbc9 "*", gr_gid = 12345, gr_mem = 0x81485d00} >>> #7 0x00000000004037fb in main (argc=3, argv=0x7fffffffd9f0) at pw.c:230 >>> which = 1 >>> config = 0x0 >>> cnf = (struct userconf *) 0x612bf0 >>> ch = -1 >>> mode = 0 >>> opts = {{0x40e150 >> "V:C:qn:u:c:d:e:p:g:G:mM:k:s:oL:i:w:h:H:Db:NPy:Y", >>> 0x40e180 "V:C:qn:u:rY", >>> 0x40e18c "V:C:qn:u:c:d:e:p:g:G:mM:l:k:s:w:L:h:H:FNPY", >>> 0x40e1b7 "V:C:qn:u:FPa7", 0x40e1c5 "V:C:q", 0x40e1c5 "V:C:q", >>> 0x40e1c5 "V:C:q"}, {0x40e1cb "V:C:qn:g:h:H:M:opNPY", >>> 0x40e1e0 "V:C:qn:g:Y", 0x40e1eb "V:C:qn:d:g:l:h:H:FM:m:NPY", >>> 0x40e205 "V:C:qn:g:FPa", 0x40e1c5 "V:C:q", 0x0, 0x0}} >>> funcs = {0x405270 <pw_user>, 0x409b60 <pw_group>} >>> (gdb) > > But neither r248102 nor r248103 compile! > > /usr/src/sys/net80211/ieee80211_output.c:600:23: error: unused variable > 'ic' [-Werror,-Wunused-variable] > struct ieee80211com *ic = ni->ni_ic;) > ( Try this the below. Andreas Index: sys/net80211/ieee80211_output.c =================================================================== --- sys/net80211/ieee80211_output.c (revision 248096) +++ sys/net80211/ieee80211_output.c (working copy) _at__at_ -597,10 +597,9 _at__at_ struct ieee80211vap *vap = ni->ni_vap; struct ieee80211_tx_ampdu *tap; struct ieee80211_frame *wh = mtod(m, struct ieee80211_frame *); - struct ieee80211com *ic = ni->ni_ic; ieee80211_seq seqno; - IEEE80211_TX_LOCK_ASSERT(ic); + IEEE80211_TX_LOCK_ASSERT(ni->ni_ic); wh->i_fc[0] = IEEE80211_FC0_VERSION_0 | type; if ((type & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_DATA) {Received on Sat Mar 09 2013 - 14:20:13 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:35 UTC