Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
Bug in get_exp_worth( )
Oct 10, 2017, 1:26 am
By GatewaySysop
Bug in do_drag( )
Oct 8, 2017, 12:40 am
By GatewaySysop
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Beastmaster 6D sound files
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, DotBot

Members: 0
Guests: 7
Stats
Files
Topics
Posts
Members
Newest Member
476
3,704
19,231
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Codebases » AFKMud Support & Development » Boot issue. Regarding Ubuntu ...
Forum Rules | Mark all | Recent Posts

Boot issue. Regarding Ubuntu Mint/Linux. Fixed, using Fedora.
< Newer Topic :: Older Topic > Was this the correct Fix...Not Sure

Pages:<< prev 1, 2, 3 next >>
Post is unread #21 Jul 30, 2009, 9:24 am   Last edited Jul 30, 2009, 9:34 am by apocalypticNRG
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

void destroy_immdata( char_data * ch, const char *vicname )
{
   char buf[256], buf2[256];

   snprintf( buf, MSL, "%s%s", GOD_DIR, capitalize( vicname ) );

   if( !remove( buf ) )
      ch->print( "&RPlayer's immortal data destroyed.\r\n" );
   else if( errno != ENOENT )
   {
      ch->printf( "&RUnknown error #%d - %s (immortal data).  Report to Samson\r\n", errno, strerror( errno ) );
      snprintf( buf2, MSL, "%s balzhuring %s", ch->name, buf );
      perror( buf2 );
   }
   snprintf( buf2, MSL, "%s.are", vicname );

   list < area_data * >::iterator iarea;
   for( iarea = arealist.begin(  ); iarea != arealist.end(  ); ++iarea )
   {
      area_data *area = *iarea;

      if( !str_cmp( area->filename, buf2 ) )
      {
         snprintf( buf, MSL, "%s%s", BUILD_DIR, buf2 );
         area->fold( buf, false );
         deleteptr( area );
         snprintf( buf2, MSL, "%s.bak", buf );
         if( !rename( buf, buf2 ) )
            ch->print( "&RPlayer's area data destroyed. Area saved as backup.\r\n" );
         else if( errno != ENOENT )
         {
            ch->printf( "&RUnknown error #%d - %s (area data).  Report to  Samson.\r\n", errno, strerror( errno ) );
            snprintf( buf2, MSL, "%s destroying %s", ch->name, buf );
            perror( buf2 );
         }
         break;
      }
   }
}
# ifdef __va_arg_pack
__extern_always_inline int
__NTH (snprintf (char *__restrict __s, size_t __n,
		 __const char *__restrict __fmt, ...))
{
  return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
				   __bos (__s), __fmt, __va_arg_pack ());
}


The last one is the stdio2.h.
       
Post is unread #22 Jul 30, 2009, 10:16 am
Go to the top of the page
Go to the bottom of the page

David Haley
Sorcerer
GroupMembers
Posts903
JoinedJan 29, 2007

Well, yes. Those are guaranteed to allow overflows, since MSL >> 256. So you need to make the buffers' size MSL, or you need to change snprintf to use the right size.
       
Post is unread #23 Jul 30, 2009, 10:39 am   Last edited Jul 30, 2009, 11:54 am by apocalypticNRG
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

Oh I see, the buf is 256, while the msl is 8192. Wow... big overlook. Good thing we are finding this stuff, may be problems for other people that the compiler didn't catch before. Thanks, I'll see how this goes.

Excellent, changed it to the right amount. No warnings... But still overflowing!


40466000-40467000 r--p 0002a000 08:05Aborted (core dumped)

warning: Can't read pathname for load map: Input/output error.
Cannot access memory at address 0x5cde
       
Post is unread #24 Jul 30, 2009, 11:07 am
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

Damnit lol... I want to get to the actual mud, this is annoying as hell. If anyone comes up with a solution feel free to announce it. Not having a good start here.
       
Post is unread #25 Jul 30, 2009, 12:03 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

I'm using gcc 4.4.0 over here and am not able to produce those overflow warnings. What C_FLAGS do you have defined for the Makefile?

Regardless, yes, that function seems to be a rather large oops that likely never caused an issue because it was hardly ever called on during Alsherok's lifetime :)
       
Post is unread #26 Jul 30, 2009, 12:07 pm   Last edited Jul 30, 2009, 12:24 pm by apocalypticNRG
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

I'm using
C_FLAGS =   -Wall $(PROF) $(NOCRYPT) -DOLD_RAND -ggdb


The ones that came with the 2.12

Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.3-5ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) 



Samson what Linux Dist, are you using. I honestly don't want to deal with this anymore, I just want it to work lol.

EDIT:

Also have you actually tried logging in to the game? after a compile, thats when it crashes.
       
Post is unread #27 Jul 30, 2009, 12:24 pm
Go to the top of the page
Go to the bottom of the page

David Haley
Sorcerer
GroupMembers
Posts903
JoinedJan 29, 2007

This is really not likely to be a distribution issue...

You should try running it in valgrind or gdb and see exactly where the crash is occurring. Note that from the stack dump you posted earlier, it was in:
./afkmud(do_look+0x421)[0x80a6d21] 


which you'll note has nothing to do with these buffer overflows.
       
Post is unread #28 Jul 30, 2009, 12:29 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

I use Fedora 11, and have been a loyal Fedora user since before they called themselves Fedora :)

And that C_FLAGS line didn't come from AFKMud 2.1.2, are you sure the directory you put it in was cleaned out ahead of time?
       
Post is unread #29 Jul 30, 2009, 12:31 pm   Last edited Jul 30, 2009, 12:48 pm by apocalypticNRG
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

Okay, I'm going to start over, remove the whole dir. untar the file, and post the log.

MAKEFILE FIRST TRY NO EDITS:

nmorgan350z@nmorgan350z ~/afkmud/src $ make
Building AFKMud....
make -j2 -s afkmud
  Compiling o/imc.o....
  Compiling o/act_comm.o....
  Compiling o/act_info.o....
  Compiling o/act_move.o....
  Compiling o/act_obj.o....
  Compiling o/act_wiz.o....
  Compiling o/archery.o....
  Compiling o/area.o....
In function �int snprintf(char*, size_t, const char*, ...)�,
    inlined from �void destroy_immdata(char_data*, const char*)� at act_wiz.cpp:2753:
/usr/include/bits/stdio2.h:66: warning: call to int __builtin___snprintf_chk(char*, unsigned int, int, unsigned int, const char*, ...) will always overflow destination buffer
In function �int snprintf(char*, size_t, const char*, ...)�,
    inlined from �void destroy_immdata(char_data*, const char*)� at act_wiz.cpp:2760:
/usr/include/bits/stdio2.h:66: warning: call to int __builtin___snprintf_chk(char*, unsigned int, int, unsigned int, const char*, ...) will always overflow destination buffer
In function �int snprintf(char*, size_t, const char*, ...)�,
    inlined from �void destroy_immdata(char_data*, const char*)� at act_wiz.cpp:2763:
/usr/include/bits/stdio2.h:66: warning: call to int __builtin___snprintf_chk(char*, unsigned int, int, unsigned int, const char*, ...) will always overflow destination buffer
In function �int snprintf(char*, size_t, const char*, ...)�,
    inlined from �void destroy_immdata(char_data*, const char*)� at act_wiz.cpp:2772:
/usr/include/bits/stdio2.h:66: warning: call to int __builtin___snprintf_chk(char*, unsigned int, int, unsigned int, const char*, ...) will always overflow destination buffer
In function �int snprintf(char*, size_t, const char*, ...)�,
    inlined from �void destroy_immdata(char_data*, const char*)� at act_wiz.cpp:2775:
/usr/include/bits/stdio2.h:66: warning: call to int __builtin___snprintf_chk(char*, unsigned int, int, unsigned int, const char*, ...) will always overflow destination buffer
In function �int snprintf(char*, size_t, const char*, ...)�,
    inlined from �void destroy_immdata(char_data*, const char*)� at act_wiz.cpp:2781:
/usr/include/bits/stdio2.h:66: warning: call to int __builtin___snprintf_chk(char*, unsigned int, int, unsigned int, const char*, ...) will always overflow destination buffer
  Compiling o/areaconvert.o....
  Compiling o/auction.o....
  Compiling o/ban.o....
  Compiling o/bits.o....
  Compiling o/boards.o....
boards.cpp: In function �void load_boards()�:
boards.cpp:1132: warning: ignoring return value of �int system(const char*)�, declared with attribute warn_unused_result
  Compiling o/build.o....
  Compiling o/calendar.o....
  Compiling o/channels.o....
  Compiling o/character.o....
  Compiling o/chess.o....
  Compiling o/clans.o....
  Compiling o/color.o....
  Compiling o/comm.o....
comm.cpp: In function �void directory_check()�:
comm.cpp:234: warning: ignoring return value of �int chdir(const char*)�, declared with attribute warn_unused_result
comm.cpp:241: warning: ignoring return value of �int chdir(const char*)�, declared with attribute warn_unused_result
comm.cpp:242: warning: ignoring return value of �int system(const char*)�, declared with attribute warn_unused_result
  Compiling o/commands.o....
  Compiling o/comments.o....
  Compiling o/connhist.o....
  Compiling o/const.o....
  Compiling o/db.o....
  Compiling o/deity.o....
  Compiling o/descriptor.o....
  Compiling o/editor.o....
  Compiling o/environment.o....
  Compiling o/event.o....
  Compiling o/event_handler.o....
  Compiling o/features.o....
  Compiling o/fight.o....
  Compiling o/finger.o....
  Compiling o/handler.o....
  Compiling o/hashstr.o....
  Compiling o/help.o....
  Compiling o/hotboot.o....
hotboot.cpp: In function �void hotboot_recover()�:
hotboot.cpp:792: warning: ignoring return value of �int fscanf(FILE*, const char*, ...)�, declared with attribute warn_unused_result
  Compiling o/imm_host.o....
  Compiling o/liquids.o....
  Compiling o/magic.o....
  Compiling o/mapout.o....
  Compiling o/mapper.o....
  Compiling o/md5.o....
  Compiling o/misc.o....
  Compiling o/mobindex.o....
  Compiling o/modules.o....
  Compiling o/mspecial.o....
  Compiling o/mssp.o....
  Compiling o/mudcfg.o....
  Compiling o/mud_comm.o....
  Compiling o/mud_prog.o....
  Compiling o/new_auth.o....
  Compiling o/object.o....
new_auth.cpp: In function �void name_generator(std::string&;)�:
new_auth.cpp:76: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp:80: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp:86: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp:93: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp:100: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp: In function �void pick_name(std::string&, const char*)�:
new_auth.cpp:146: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp:150: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
new_auth.cpp:155: warning: ignoring return value of �char* fgets(char*, int, FILE*)�, declared with attribute warn_unused_result
  Compiling o/objindex.o....
  Compiling o/olcmob.o....
  Compiling o/olcobj.o....
  Compiling o/olcroom.o....
  Compiling o/overland.o....
  Compiling o/pfiles.o....
pfiles.cpp: In function �void do_pfiles(char_data*, std::string)�:
pfiles.cpp:854: warning: ignoring return value of �int system(const char*)�, declared with attribute warn_unused_result
pfiles.cpp: In function �void check_pfiles(time_t)�:
pfiles.cpp:907: warning: ignoring return value of �int system(const char*)�, declared with attribute warn_unused_result
  Compiling o/player.o....
  Compiling o/polymorph.o....
  Compiling o/rare.o....
  Compiling o/renumber.o....
  Compiling o/reset.o....
  Compiling o/roomindex.o....
  Compiling o/save.o....
  Compiling o/search.o....
  Compiling o/sha256.o....
  Compiling o/ships.o....
  Compiling o/shops.o....
  Compiling o/skills.o....
  Compiling o/skyship.o....
  Compiling o/slay.o....
  Compiling o/tables.o....
  Compiling o/track.o....
  Compiling o/treasure.o....
  Compiling o/update.o....
  Compiling o/variables.o....
  Compiling o/web.o....
Generating dependency file ...
Done building AFKMud.
Buidling DNS Resolver...
make -s resolver
Done buidling DNS Resolver.


EDIT:

Samson can you actually log in to the game?

Okay, we know how to get rid of the overflow warnings, but that still doesn't solve the mud crashing.


I'm dumping this linux / mint garbage, and going with fedora. We'll see what happens.

I'll be back in an hour.
       
Post is unread #30 Jul 30, 2009, 12:43 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

Yes, I'm able to log in.
       
Post is unread #31 Jul 30, 2009, 12:48 pm
Go to the top of the page
Go to the bottom of the page

David Haley
Sorcerer
GroupMembers
Posts903
JoinedJan 29, 2007

Okay, we know how to get rid of the overflow warnings, but that still doesn't solve the mud crashing.

As I said, the crash appears to be coming from somewhere that doesn't have the overflows in the first place -- you need to debug this with gdb or valgrind.
       
Post is unread #32 Jul 30, 2009, 12:54 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

Wish I could get the code here to generate those overflow warnings, that's something that does in fact need to be fixed, one way or the other. Though it looks like just that one function is at fault. Couldn't care less about the return value spam though :)
       
Post is unread #33 Jul 30, 2009, 12:58 pm
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

nmorgan350z@nmorgan350z ~/afkmud/area $ valgrind ../src/afkmud 4000
==18057== Memcheck, a memory error detector.
==18057== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==18057== Using LibVEX rev 1884, a library for dynamic binary translation.
==18057== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==18057== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework.
==18057== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==18057== For more details, rerun with: -v
==18057== 
Thu Jul 30, 2009 2:52:58 PM CDT :: Booting Database
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Thu Jul 30, 2009 2:52:58 PM CDT :: [*****] BOOT: ---------------------[ Boot Log ]--------------------
Thu Jul 30, 2009 2:52:58 PM CDT :: Database bootup starting.
Thu Jul 30, 2009 2:52:58 PM CDT :: Loading sysdata configuration...
Thu Jul 30, 2009 2:52:59 PM CDT :: Initializing libdl support...
Thu Jul 30, 2009 2:52:59 PM CDT :: Verifying existence of login greeting...
Thu Jul 30, 2009 2:52:59 PM CDT :: Login greeting located.
Thu Jul 30, 2009 2:52:59 PM CDT :: Loading commands...
==18057== Invalid read of size 4
==18057==    at 0x4016A70: (within /lib/ld-2.9.so)
==18057==    by 0x42E3D03: (within /lib/tls/i686/cmov/libc-2.9.so)
==18057==    by 0x42E40F9: _dl_sym (in /lib/tls/i686/cmov/libc-2.9.so)
==18057==    by 0x409BDB7: (within /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x400E035: (within /lib/ld-2.9.so)
==18057==    by 0x409C01B: (within /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x409BD42: dlsym (in /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x825A218: skill_function(std::string const&;) (tables.cpp:68)
==18057==    by 0x8158374: load_commands() (commands.cpp:1061)
==18057==    by 0x8168992: boot_db(bool) (db.cpp:1873)
==18057==    by 0x8154077: init_mud(bool, int, int, int) (comm.cpp:397)
==18057==    by 0x8154313: main (comm.cpp:1313)
==18057==  Address 0x4587bfc is 20 bytes inside a block of size 21 alloc'd
==18057==    at 0x40269EE: operator new(unsigned int) (vg_replace_malloc.c:224)
==18057==    by 0x4134AD3: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&;) (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x41359E4: (within /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x41360C3: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned int, unsigned int) (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x413613D: std::string::substr(unsigned int, unsigned int) const (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x81809B0: strip_lspace(std::string&;) (editor.cpp:554)
==18057==    by 0x8158285: load_commands() (commands.cpp:1046)
==18057==    by 0x8168992: boot_db(bool) (db.cpp:1873)
==18057==    by 0x8154077: init_mud(bool, int, int, int) (comm.cpp:397)
==18057==    by 0x8154313: main (comm.cpp:1313)
==18057== 
==18057== Invalid read of size 4
==18057==    at 0x4016A59: (within /lib/ld-2.9.so)
==18057==    by 0x42E3D03: (within /lib/tls/i686/cmov/libc-2.9.so)
==18057==    by 0x42E40F9: _dl_sym (in /lib/tls/i686/cmov/libc-2.9.so)
==18057==    by 0x409BDB7: (within /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x400E035: (within /lib/ld-2.9.so)
==18057==    by 0x409C01B: (within /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x409BD42: dlsym (in /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x825A218: skill_function(std::string const&;) (tables.cpp:68)
==18057==    by 0x8158374: load_commands() (commands.cpp:1061)
==18057==    by 0x8168992: boot_db(bool) (db.cpp:1873)
==18057==    by 0x8154077: init_mud(bool, int, int, int) (comm.cpp:397)
==18057==    by 0x8154313: main (comm.cpp:1313)
==18057==  Address 0x459b868 is 16 bytes inside a block of size 19 alloc'd
==18057==    at 0x40269EE: operator new(unsigned int) (vg_replace_malloc.c:224)
==18057==    by 0x4134AD3: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&;) (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x41359E4: (within /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x41360C3: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned int, unsigned int) (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x413613D: std::string::substr(unsigned int, unsigned int) const (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x81809B0: strip_lspace(std::string&;) (editor.cpp:554)
==18057==    by 0x8158285: load_commands() (commands.cpp:1046)
==18057==    by 0x8168992: boot_db(bool) (db.cpp:1873)
==18057==    by 0x8154077: init_mud(bool, int, int, int) (comm.cpp:397)
==18057==    by 0x8154313: main (comm.cpp:1313)
==18057== 
==18057== Invalid read of size 4
==18057==    at 0x4016A87: (within /lib/ld-2.9.so)
==18057==    by 0x42E3D03: (within /lib/tls/i686/cmov/libc-2.9.so)
==18057==    by 0x42E40F9: _dl_sym (in /lib/tls/i686/cmov/libc-2.9.so)
==18057==    by 0x409BDB7: (within /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x400E035: (within /lib/ld-2.9.so)
==18057==    by 0x409C01B: (within /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x409BD42: dlsym (in /lib/tls/i686/cmov/libdl-2.9.so)
==18057==    by 0x825A218: skill_function(std::string const&;) (tables.cpp:68)
==18057==    by 0x8158374: load_commands() (commands.cpp:1061)
==18057==    by 0x8168992: boot_db(bool) (db.cpp:1873)
==18057==    by 0x8154077: init_mud(bool, int, int, int) (comm.cpp:397)
==18057==    by 0x8154313: main (comm.cpp:1313)
==18057==  Address 0x4662138 is 24 bytes inside a block of size 26 alloc'd
==18057==    at 0x40269EE: operator new(unsigned int) (vg_replace_malloc.c:224)
==18057==    by 0x4134AD3: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&;) (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x41359E4: (within /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x41360C3: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned int, unsigned int) (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x413613D: std::string::substr(unsigned int, unsigned int) const (in /usr/lib/libstdc++.so.6.0.10)
==18057==    by 0x81809B0: strip_lspace(std::string&;) (editor.cpp:554)
==18057==    by 0x8158285: load_commands() (commands.cpp:1046)
==18057==    by 0x8168992: boot_db(bool) (db.cpp:1873)
==18057==    by 0x8154077: init_mud(bool, int, int, int) (comm.cpp:397)
==18057==    by 0x8154313: main (comm.cpp:1313)
Thu Jul 30, 2009 2:53:01 PM CDT :: Loading spec_funs...
Thu Jul 30, 2009 2:53:01 PM CDT :: Loading helps...
Thu Jul 30, 2009 2:53:03 PM CDT :: Loading channels...
Thu Jul 30, 2009 2:53:03 PM CDT :: Loading overland maps...
Thu Jul 30, 2009 2:53:03 PM CDT :: Initializing map grid array....
Thu Jul 30, 2009 2:53:03 PM CDT :: Loading continent of One.....
Thu Jul 30, 2009 2:53:23 PM CDT :: Loading overland map exits....
Thu Jul 30, 2009 2:53:23 PM CDT :: Loading overland landmarks....
Thu Jul 30, 2009 2:53:23 PM CDT :: Loading landing sites....
Thu Jul 30, 2009 2:53:23 PM CDT :: Loading socials...
Thu Jul 30, 2009 2:53:27 PM CDT :: Loading skill table...
Thu Jul 30, 2009 2:53:31 PM CDT :: Sorting skill table...
Thu Jul 30, 2009 2:53:31 PM CDT :: Remapping slots to sns...
Thu Jul 30, 2009 2:53:31 PM CDT :: Loading classes
Thu Jul 30, 2009 2:53:43 PM CDT :: Loading races
Thu Jul 30, 2009 2:53:44 PM CDT :: Loading Connection History
Thu Jul 30, 2009 2:53:44 PM CDT :: Loading liquid table
Thu Jul 30, 2009 2:53:44 PM CDT :: Loading mixture table
Thu Jul 30, 2009 2:53:44 PM CDT :: Loading herb table
Thu Jul 30, 2009 2:53:44 PM CDT :: Loading tongues
Thu Jul 30, 2009 2:53:44 PM CDT :: Loading quest bit tables
Thu Jul 30, 2009 2:53:45 PM CDT :: [*****] BUG: load_abits: Cannot open abit file.
Thu Jul 30, 2009 2:53:45 PM CDT :: [*****] BUG: load_qbits: Cannot open qbit file.
Thu Jul 30, 2009 2:53:45 PM CDT :: Initializing random number generator
Thu Jul 30, 2009 2:53:45 PM CDT :: Setting Astral Walk target room
Thu Jul 30, 2009 2:53:45 PM CDT :: Setting time and weather
Thu Jul 30, 2009 2:53:45 PM CDT :: Loading holiday chart...
Thu Jul 30, 2009 2:53:45 PM CDT :: Assigning gsn's
Thu Jul 30, 2009 2:53:46 PM CDT :: Loading DNS cache...
Thu Jul 30, 2009 2:53:46 PM CDT :: Loading slay table...
Thu Jul 30, 2009 2:53:47 PM CDT :: Reading in area files...
Thu Jul 30, 2009 2:53:50 PM CDT :: void.are            : Version 1   Vnums: 11000 - 11999
Thu Jul 30, 2009 2:53:50 PM CDT :: entry.are           : Version 1   Vnums:   100 - 199  
Thu Jul 30, 2009 2:53:52 PM CDT :: astral.are          : Version 1   Vnums:  4350 - 4449 
Thu Jul 30, 2009 2:53:52 PM CDT :: one.are             : Version 1   Vnums: 50000 - 50499
Thu Jul 30, 2009 2:53:53 PM CDT :: immtrain.are        : Version 1   Vnums: 21100 - 21299
Thu Jul 30, 2009 2:53:53 PM CDT :: Loading ships...
Thu Jul 30, 2009 2:53:53 PM CDT :: Loading runes...
Thu Jul 30, 2009 2:53:53 PM CDT :: Loading runewords...
Thu Jul 30, 2009 2:53:53 PM CDT :: Fixing exits...
Thu Jul 30, 2009 2:53:53 PM CDT :: Loading clans...
Thu Jul 30, 2009 2:53:53 PM CDT :: $
Thu Jul 30, 2009 2:53:53 PM CDT :: Cleaning up clan data...
Thu Jul 30, 2009 2:53:53 PM CDT :: Done clans
Thu Jul 30, 2009 2:53:53 PM CDT :: Loading deities...
Thu Jul 30, 2009 2:53:53 PM CDT :: Done deities
Thu Jul 30, 2009 2:53:53 PM CDT :: Counting pfiles.....
Thu Jul 30, 2009 2:53:53 PM CDT :: Pfile count completed.
Thu Jul 30, 2009 2:53:53 PM CDT :: Total pfiles scanned: 1
Thu Jul 30, 2009 2:53:53 PM CDT :: Total exempted pfiles: 0
Thu Jul 30, 2009 2:53:53 PM CDT :: Updating rare item counts.....
Thu Jul 30, 2009 2:53:53 PM CDT :: Checking player files....
Thu Jul 30, 2009 2:53:54 PM CDT :: Checking corpses....
Thu Jul 30, 2009 2:53:54 PM CDT :: Loading corpses...
Thu Jul 30, 2009 2:53:54 PM CDT :: Making wizlist
Thu Jul 30, 2009 2:53:54 PM CDT :: Building wizinfo
Thu Jul 30, 2009 2:53:54 PM CDT :: Loading MSSP Data...
Thu Jul 30, 2009 2:53:54 PM CDT :: Initializing area reset events...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading auction sales list...
Thu Jul 30, 2009 2:53:55 PM CDT :: No sales file found.
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading auction houses...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading clan/guild shops...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading prototype area files...
Thu Jul 30, 2009 2:53:55 PM CDT :: Fixing prototype zone exits...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading boards...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading bans...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading auth namelist...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading Immortal Hosts...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading Projects...
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading Morphs...
Thu Jul 30, 2009 2:53:55 PM CDT :: Done.
Thu Jul 30, 2009 2:53:55 PM CDT :: Loading weather vector data...
Thu Jul 30, 2009 2:53:55 PM CDT :: Initializing area weather data...
Thu Jul 30, 2009 2:53:55 PM CDT :: Area weather data initialized.
Thu Jul 30, 2009 2:53:55 PM CDT :: Registering chess packet handler...
Thu Jul 30, 2009 2:53:55 PM CDT :: Database bootup completed.
Thu Jul 30, 2009 2:53:55 PM CDT :: Initializing main socket
Thu Jul 30, 2009 2:53:55 PM CDT :: Main socket initialized
Thu Jul 30, 2009 2:53:55 PM CDT :: AFKMud ready on port 4000.
Thu Jul 30, 2009 2:53:55 PM CDT :: IMC: Loading IMC2 command table...
Thu Jul 30, 2009 2:53:55 PM CDT :: IMC: Loading IMC2 network data...
Thu Jul 30, 2009 2:53:55 PM CDT :: IMC: Loading IMC2 help file...
Thu Jul 30, 2009 2:53:55 PM CDT :: IMC: Loading IMC2 color table...
Thu Jul 30, 2009 2:53:55 PM CDT :: IMC: IMC2 network data loaded. Autoconnect not set. IMC2 will need to be connected manually.
Thu Jul 30, 2009 2:53:56 PM CDT :: No people online yet. Suspending autonomous update handlers.
Thu Jul 30, 2009 2:54:16 PM CDT :: Waking up autonomous update handlers.
Thu Jul 30, 2009 2:54:20 PM CDT :: Incoming connection: local-host, port 42925.
Thu Jul 30, 2009 2:54:27 PM CDT :: Incoming connection: local-host, port 42925.
**18057** *** strcpy_chk: buffer overflow detected ***: program terminated
==18057==    at 0x4028B21: VALGRIND_PRINTF_BACKTRACE (valgrind.h:3695)
==18057==    by 0x4028CE7: __strcpy_chk (mc_replace_strmem.c:614)
==18057==    by 0x81B61D4: show_map(char_data*, char*) (string3.h:106)
==18057==    by 0x80A6D20: do_look (act_info.cpp:1221)
==18057==    by 0x815A0EF: interpret(char_data*, std::string) (commands.cpp:814)
==18057==    by 0x81794C6: char_to_game(char_data*) (descriptor.cpp:2257)
==18057==    by 0x817F7E9: descriptor_data::nanny(std::string&;) (descriptor.cpp:3306)
==18057==    by 0x81530DC: process_input() (comm.cpp:862)
==18057==    by 0x81537D0: game_loop() (comm.cpp:935)
==18057==    by 0x81543A3: main (comm.cpp:1342)
==18057== 
==18057== ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 49 from 2)
==18057== malloc/free: in use at exit: 2,265,911 bytes in 34,080 blocks.
==18057== malloc/free: 761,479 allocs, 727,399 frees, 23,445,478 bytes allocated.
==18057== For counts of detected errors, rerun with: -v
==18057== searching for pointers to 34,080 not-freed blocks.
==18057== checked 3,522,148 bytes.
==18057== 
==18057== LEAK SUMMARY:
==18057==    definitely lost: 421,935 bytes in 1,446 blocks.
==18057==      possibly lost: 921,663 bytes in 12,048 blocks.
==18057==    still reachable: 922,313 bytes in 20,586 blocks.
==18057==         suppressed: 0 bytes in 0 blocks.
==18057== Rerun with --leak-check=full to see details of leaked memory.
nmorgan350z@nmorgan350z ~/afkmud/area $ 
       
Post is unread #34 Jul 30, 2009, 1:28 pm
Go to the top of the page
Go to the bottom of the page

David Haley
Sorcerer
GroupMembers
Posts903
JoinedJan 29, 2007

Samson said:

Couldn't care less about the return value spam though :)

You probably should, if you care about robust I/O... the return value can indicate that you're at end-of-file and didn't read anything, for example.

**18057** *** strcpy_chk: buffer overflow detected ***: program terminated
==18057==    at 0x4028B21: VALGRIND_PRINTF_BACKTRACE (valgrind.h:3695)
==18057==    by 0x4028CE7: __strcpy_chk (mc_replace_strmem.c:614)
==18057==    by 0x81B61D4: show_map(char_data*, char*) (string3.h:106)
==18057==    by 0x80A6D20: do_look (act_info.cpp:1221)
==18057==    by 0x815A0EF: interpret(char_data*, std::string) (commands.cpp:814)
==18057==    by 0x81794C6: char_to_game(char_data*) (descriptor.cpp:2257)
==18057==    by 0x817F7E9: descriptor_data::nanny(std::string&;) (descriptor.cpp:3306)
==18057==    by 0x81530DC: process_input() (comm.cpp:862)
==18057==    by 0x81537D0: game_loop() (comm.cpp:935)
==18057==    by 0x81543A3: main (comm.cpp:1342)

Well then, you know that you need to fix the code here:
==18057== by 0x81B61D4: show_map(char_data*, char*) (string3.h:106)
       
Post is unread #35 Jul 30, 2009, 1:48 pm
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

I can already tell this is going to be endless. I'm just going to install fedora, run the correct packages, and hope for the best. I don't see this thing running correctly. Some of the error's have to do with the package installed, etc... Not saying Mint Linux isn't good, I just don't think its what I was looking for. I have the fedora 11.iso on a cd, ready to rock. Cya in a hour with some better news :).
       
Post is unread #36 Jul 30, 2009, 1:56 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

Had to wrangle just a tad with gcc 4.4.0 to get this up (they moved some includes around, assholes) but for the record:
[samson@boralis: ~/afkmud/area] ./grind
==20841== Memcheck, a memory error detector.
==20841== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==20841== Using LibVEX rev 1884, a library for dynamic binary translation.
==20841== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==20841== Using valgrind-3.4.1, a dynamic binary instrumentation framework.
==20841== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==20841==
--20841-- Command line
--20841-- ../src/afkmud
--20841-- 5500
--20841-- Startup, with flags:
--20841-- -v
--20841-- --tool=memcheck
--20841-- --leak-check=yes
--20841-- --show-reachable=yes
--20841-- --db-attach=yes
--20841-- --num-callers=10
--20841-- --track-fds=yes
--20841-- --suppressions=./vg_suppress.supp
--20841-- Contents of /proc/version:
--20841-- Linux version 2.6.29.5-191.fc11.x86_64 (mockbuild@x86-5.fedora.phx.redhat.com) (gcc version 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC) ) #1 SMP Tue Jun 16 23:23:21 EDT 2009
--20841-- Arch and hwcaps: AMD64, amd64-sse2
--20841-- Page sizes: currently 4096, max supported 4096
--20841-- Valgrind library directory: /usr/lib64/valgrind
--20841-- Reading syms from /home/samson/afkmud/src/afkmud (0x400000)
--20841-- Reading syms from /usr/lib64/valgrind/amd64-linux/memcheck (0x38000000)
--20841-- object doesn't have a dynamic symbol table
--20841-- Reading syms from /lib64/ld-2.10.1.so (0x3241c00000)
--20841-- Reading suppressions file: ./vg_suppress.supp
--20841-- Reading suppressions file: /usr/lib64/valgrind/default.supp
--20841-- REDIR: 0x3241c17320 (strlen) redirected to 0x3803c8c7 (vgPlain_amd64_linux_REDIR_FOR_strlen)
--20841-- Reading syms from /usr/lib64/valgrind/amd64-linux/vgpreload_core.so (0x4802000)
--20841-- Reading syms from /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so (0x4a03000)
==20841== WARNING: new redirection conflicts with existing -- ignoring it
--20841-- new: 0x3241c17320 (strlen ) R-> 0x04a07de0 strlen
--20841-- REDIR: 0x3241c17190 (index) redirected to 0x4a07b30 (index)
--20841-- REDIR: 0x3241c17210 (strcmp) redirected to 0x4a080e0 (strcmp)
--20841-- Reading syms from /lib64/libz.so.1.2.3 (0x3243400000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libgd.so.2.0.0 (0x4c18000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /lib64/libdl-2.10.1.so (0x3242400000)
--20841-- Reading syms from /usr/lib64/libstdc++.so.6.0.11 (0x3244000000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /lib64/libm-2.10.1.so (0x3242c00000)
--20841-- Reading syms from /lib64/libgcc_s-4.4.0-20090506.so.1 (0x3244400000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /lib64/libc-2.10.1.so (0x3242000000)
--20841-- Reading syms from /usr/lib64/libXpm.so.4.11.0 (0x4e60000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libX11.so.6.2.0 (0x5071000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libjpeg.so.62.0.0 (0x53aa000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libfontconfig.so.1.3.0 (0x355ea00000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libfreetype.so.6.3.20 (0x355e600000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libpng12.so.0.37.0 (0x3245400000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libxcb.so.1.1.0 (0x55cf000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /lib64/libexpat.so.1.5.2 (0x3246c00000)
--20841-- object doesn't have a symbol table
--20841-- Reading syms from /usr/lib64/libXau.so.6.0.0 (0x3243800000)
--20841-- object doesn't have a symbol table
--20841-- REDIR: 0x324207f830 (rindex) redirected to 0x4a07990 (rindex)
--20841-- REDIR: 0x324207f400 (strlen) redirected to 0x4a07da0 (strlen)
--20841-- REDIR: 0x32440c2770 (operator new(unsigned long)) redirected to 0x4a06f30 (operator new(unsigned long))
--20841-- REDIR: 0x3242082510 (memcpy) redirected to 0x4a081c0 (memcpy)
--20841-- REDIR: 0x3242079e30 (calloc) redirected to 0x4a05340 (calloc)
--20841-- REDIR: 0x3242079880 (free) redirected to 0x4a06270 (free)
--20841-- REDIR: 0x324207a780 (malloc) redirected to 0x4a07570 (malloc)
--20841-- REDIR: 0x324207eeb0 (strcpy) redirected to 0x4a07e00 (strcpy)
--20841-- REDIR: 0x324207ee70 (strcmp) redirected to 0x4a08090 (strcmp)
--20841-- REDIR: 0xffffffffff600000 (???) redirected to 0x3803c8b3 (vgPlain_amd64_linux_REDIR_FOR_vgettimeofday)
--20841-- REDIR: 0x3242084ee0 (strchrnul) redirected to 0x4a08d40 (strchrnul)
--20841-- REDIR: 0x32440c08a0 (operator delete(void*)) redirected to 0x4a05d70 (operator delete(void*))
--20841-- REDIR: 0x3242081ba0 (mempcpy) redirected to 0x4a08d90 (mempcpy)
Thu Jul 30, 2009 1:51:19 PM PDT :: Booting Database
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Thu Jul 30, 2009 1:51:19 PM PDT :: [*****] BOOT: ---------------------[ Boot Log ]--------------------
Thu Jul 30, 2009 1:51:19 PM PDT :: Database bootup starting.
Thu Jul 30, 2009 1:51:19 PM PDT :: Loading sysdata configuration...
--20841-- REDIR: 0x32440c28a0 (operator new[](unsigned long)) redirected to 0x4a067f0 (operator new[](unsigned long))
--20841-- REDIR: 0x3242080920 (memchr) redirected to 0x4a08180 (memchr)
Thu Jul 30, 2009 1:51:20 PM PDT :: Initializing libdl support...
Thu Jul 30, 2009 1:51:20 PM PDT :: Verifying existence of login greeting...
Thu Jul 30, 2009 1:51:20 PM PDT :: Login greeting located.
Thu Jul 30, 2009 1:51:20 PM PDT :: Loading commands...
--20841-- REDIR: 0x3242080eb0 (memmove) redirected to 0x4a08cd0 (memmove)
--20841-- REDIR: 0x3241c17db0 (stpcpy) redirected to 0x4a08b90 (stpcpy)
--20841-- REDIR: 0x324207f5d0 (strncmp) redirected to 0x4a08020 (strncmp)
--20841-- REDIR: 0x32420821c0 (stpcpy) redirected to 0x4a089f0 (stpcpy)
--20841-- REDIR: 0x32440c08e0 (operator delete[](void*)) redirected to 0x4a05770 (operator delete[](void*))
Thu Jul 30, 2009 1:51:20 PM PDT :: Loading spec_funs...
Thu Jul 30, 2009 1:51:20 PM PDT :: Loading helps...
Thu Jul 30, 2009 1:51:20 PM PDT :: Loading channels...
Thu Jul 30, 2009 1:51:20 PM PDT :: Loading overland maps...
Thu Jul 30, 2009 1:51:20 PM PDT :: Initializing map grid array....
Thu Jul 30, 2009 1:51:20 PM PDT :: Loading continent of One.....
--20841-- REDIR: 0x3242081070 (memset) redirected to 0x4a08c60 (memset)
Thu Jul 30, 2009 1:51:23 PM PDT :: Loading overland map exits....
Thu Jul 30, 2009 1:51:23 PM PDT :: Loading overland landmarks....
Thu Jul 30, 2009 1:51:23 PM PDT :: Loading landing sites....
Thu Jul 30, 2009 1:51:23 PM PDT :: Loading socials...
Thu Jul 30, 2009 1:51:24 PM PDT :: Loading skill table...
Thu Jul 30, 2009 1:51:25 PM PDT :: Sorting skill table...
Thu Jul 30, 2009 1:51:25 PM PDT :: Remapping slots to sns...
Thu Jul 30, 2009 1:51:25 PM PDT :: Loading classes
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading races
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading Connection History
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading liquid table
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading mixture table
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading herb table
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading tongues
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading quest bit tables
Thu Jul 30, 2009 1:51:28 PM PDT :: [*****] BUG: load_abits: Cannot open abit file.
Thu Jul 30, 2009 1:51:28 PM PDT :: [*****] BUG: load_qbits: Cannot open qbit file.
Thu Jul 30, 2009 1:51:28 PM PDT :: Initializing random number generator
Thu Jul 30, 2009 1:51:28 PM PDT :: Setting Astral Walk target room
Thu Jul 30, 2009 1:51:28 PM PDT :: Setting time and weather
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading holiday chart...
Thu Jul 30, 2009 1:51:28 PM PDT :: Assigning gsn's
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading DNS cache...
Thu Jul 30, 2009 1:51:28 PM PDT :: Loading slay table...
Thu Jul 30, 2009 1:51:28 PM PDT :: Reading in area files...
--20841-- REDIR: 0x3242084e80 (rawmemchr) redirected to 0x4a08d70 (rawmemchr)
Thu Jul 30, 2009 1:51:29 PM PDT :: void.are : Version 1 Vnums: 11000 - 11999
Thu Jul 30, 2009 1:51:29 PM PDT :: entry.are : Version 1 Vnums: 100 - 199
Thu Jul 30, 2009 1:51:29 PM PDT :: astral.are : Version 1 Vnums: 4350 - 4449
Thu Jul 30, 2009 1:51:29 PM PDT :: one.are : Version 1 Vnums: 50000 - 50499
Thu Jul 30, 2009 1:51:30 PM PDT :: immtrain.are : Version 1 Vnums: 21100 - 21299
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading ships...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading runes...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading runewords...
Thu Jul 30, 2009 1:51:30 PM PDT :: Fixing exits...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading clans...
Thu Jul 30, 2009 1:51:30 PM PDT :: $
Thu Jul 30, 2009 1:51:30 PM PDT :: Cleaning up clan data...
Thu Jul 30, 2009 1:51:30 PM PDT :: Done clans
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading deities...
Thu Jul 30, 2009 1:51:30 PM PDT :: Done deities
Thu Jul 30, 2009 1:51:30 PM PDT :: Counting pfiles.....
--20841-- REDIR: 0xffffffffff600400 (???) redirected to 0x3803c8bd (vgPlain_amd64_linux_REDIR_FOR_vtime)
Thu Jul 30, 2009 1:51:30 PM PDT :: Pfile count completed.
Thu Jul 30, 2009 1:51:30 PM PDT :: Total pfiles scanned: 1
Thu Jul 30, 2009 1:51:30 PM PDT :: Total exempted pfiles: 0
Thu Jul 30, 2009 1:51:30 PM PDT :: Updating rare item counts.....
Thu Jul 30, 2009 1:51:30 PM PDT :: Checking player files....
Thu Jul 30, 2009 1:51:30 PM PDT :: Checking corpses....
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading corpses...
Thu Jul 30, 2009 1:51:30 PM PDT :: Making wizlist
Thu Jul 30, 2009 1:51:30 PM PDT :: Building wizinfo
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading MSSP Data...
Thu Jul 30, 2009 1:51:30 PM PDT :: No MSSP data file found. Generating default data.
Thu Jul 30, 2009 1:51:30 PM PDT :: Initializing area reset events...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading auction sales list...
Thu Jul 30, 2009 1:51:30 PM PDT :: No sales file found.
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading auction houses...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading clan/guild shops...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading prototype area files...
Thu Jul 30, 2009 1:51:30 PM PDT :: Fixing prototype zone exits...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading boards...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading bans...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading auth namelist...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading Immortal Hosts...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading Projects...
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading Morphs...
Thu Jul 30, 2009 1:51:30 PM PDT :: Done.
Thu Jul 30, 2009 1:51:30 PM PDT :: Loading weather vector data...
Thu Jul 30, 2009 1:51:30 PM PDT :: Initializing area weather data...
Thu Jul 30, 2009 1:51:30 PM PDT :: Area weather data initialized.
Thu Jul 30, 2009 1:51:30 PM PDT :: Registering chess packet handler...
Thu Jul 30, 2009 1:51:30 PM PDT :: Database bootup completed.
Thu Jul 30, 2009 1:51:30 PM PDT :: Initializing main socket
Thu Jul 30, 2009 1:51:30 PM PDT :: Main socket initialized
Thu Jul 30, 2009 1:51:30 PM PDT :: AFKMud ready on port 5500.
Thu Jul 30, 2009 1:51:30 PM PDT :: IMC: Loading IMC2 command table...
Thu Jul 30, 2009 1:51:30 PM PDT :: IMC: Loading IMC2 network data...
Thu Jul 30, 2009 1:51:30 PM PDT :: IMC: Loading IMC2 help file...
Thu Jul 30, 2009 1:51:30 PM PDT :: IMC: Loading IMC2 color table...
Thu Jul 30, 2009 1:51:30 PM PDT :: IMC: IMC2 network data loaded. Autoconnect not set. IMC2 will need to be connected manually.
Thu Jul 30, 2009 1:51:30 PM PDT :: No people online yet. Suspending autonomous update handlers.
Thu Jul 30, 2009 1:51:39 PM PDT :: Waking up autonomous update handlers.
--20841-- REDIR: 0x324207f530 (strncat) redirected to 0x4a07c50 (strncat)
--20841-- REDIR: 0x32420809a0 (bcmp) redirected to 0x4a08950 (bcmp)
Thu Jul 30, 2009 1:51:47 PM PDT :: Incoming connection: 127.0.0.1, port 45382.
Thu Jul 30, 2009 1:51:47 PM PDT :: Preloading player data for: Admin
Thu Jul 30, 2009 1:51:49 PM PDT :: Loading player data for Admin (14K)
Thu Jul 30, 2009 1:51:50 PM PDT :: Admin [boralis.arthmoor.com] has connected.
Thu Jul 30, 2009 1:51:52 PM PDT :: Linux client detected for Admin.
Thu Jul 30, 2009 1:51:52 PM PDT :: Admin returns from beyond the void.
Thu Jul 30, 2009 1:53:50 PM PDT :: Log Admin: shutdown mud now
--20841-- REDIR: 0x324207edf0 (index) redirected to 0x4a07ab0 (index)
Thu Jul 30, 2009 1:53:51 PM PDT :: Saving players....
Thu Jul 30, 2009 1:53:51 PM PDT :: Admin saved.
Thu Jul 30, 2009 1:53:51 PM PDT :: Saving game world time....
Thu Jul 30, 2009 1:53:51 PM PDT :: Normal termination of game.
Thu Jul 30, 2009 1:53:51 PM PDT :: Cleaning up Memory.&d
Thu Jul 30, 2009 1:53:51 PM PDT :: No more people online. Autonomous actions suspended.
==20841==
==20841== FILE DESCRIPTORS: 3 open at exit.
==20841== Open file descriptor 2: /dev/pts/0
==20841== <inherited from parent>
==20841==
==20841== Open file descriptor 1:
==20841== at 0x32420D1997: dup2 (in /lib64/libc-2.10.1.so)
==20841== by 0x538B24: descriptor_data::resolve_dns(long) (descriptor.cpp:1327)
==20841== by 0x53B3B5: new_descriptor(int) (descriptor.cpp:1459)
==20841== by 0x513E00: game_loop() (comm.cpp:927)
==20841== by 0x514953: main (comm.cpp:1342)
==20841==
==20841== Open file descriptor 0: /dev/pts/0
==20841== <inherited from parent>
==20841==
==20841==
==20841== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 2)
--20841--
--20841-- supp: 4 dl-hack3-cond-1
--20841-- supp: 2 glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
==20841== malloc/free: in use at exit: 421,935 bytes in 1,446 blocks.
==20841== malloc/free: 1,044,497 allocs, 1,043,051 frees, 54,966,390 bytes allocated.
==20841==
==20841== searching for pointers to 1,446 not-freed blocks.
==20841== checked 1,903,168 bytes.
==20841==
==20841== 421,935 bytes in 1,446 blocks are definitely lost in loss record 1 of 1
==20841== at 0x4A068BE: operator new[](unsigned long) (vg_replace_malloc.c:274)
==20841== by 0x544A98: str_dup(char const*) (editor.cpp:171)
==20841== by 0x5271BC: fread_string_nohash(_IO_FILE*) (db.cpp:710)
==20841== by 0x528817: fread_sysdata(_IO_FILE*) (db.cpp:1138)
==20841== by 0x528F0E: load_systemdata() (db.cpp:1245)
==20841== by 0x5294D4: boot_db(bool) (db.cpp:1828)
==20841== by 0x51462C: init_mud(bool, int, int, int) (comm.cpp:397)
==20841== by 0x5148B3: main (comm.cpp:1313)
==20841==
==20841== LEAK SUMMARY:
==20841== definitely lost: 421,935 bytes in 1,446 blocks.
==20841== possibly lost: 0 bytes in 0 blocks.
==20841== still reachable: 0 bytes in 0 blocks.
==20841== suppressed: 0 bytes in 0 blocks.
--20841-- memcheck: sanity checks: 1705 cheap, 41 expensive
--20841-- memcheck: auxmaps: 430 auxmap entries (27520k, 26M) in use
--20841-- memcheck: auxmaps_L1: 509125 searches, 1925558 cmps, ratio 37:10
--20841-- memcheck: auxmaps_L2: 1618 searches, 430 nodes
--20841-- memcheck: SMs: n_issued = 491 (7856k, 7M)
--20841-- memcheck: SMs: n_deissued = 14 (224k, 0M)
--20841-- memcheck: SMs: max_noaccess = 524287 (8388592k, 8191M)
--20841-- memcheck: SMs: max_undefined = 14 (224k, 0M)
--20841-- memcheck: SMs: max_defined = 730 (11680k, 11M)
--20841-- memcheck: SMs: max_non_DSM = 477 (7632k, 7M)
--20841-- memcheck: max sec V bit nodes: 0 (0k, 0M)
--20841-- memcheck: set_sec_vbits8 calls: 0 (new: 0, updates: 0)
--20841-- memcheck: max shadow mem size: 11776k, 11M
--20841-- translate: fast SP updates identified: 25,135 ( 91.9%)
--20841-- translate: generic_known SP updates identified: 2,021 ( 7.3%)
--20841-- translate: generic_unknown SP updates identified: 172 ( 0.6%)
--20841-- tt/tc: 106,543 tt lookups requiring 118,200 probes
--20841-- tt/tc: 106,543 fast-cache updates, 4 flushes
--20841-- transtab: new 18,178 (427,339 -> 7,072,481; ratio 165:10) [0 scs]
--20841-- transtab: dumped 0 (0 -> ??)
--20841-- transtab: discarded 7 (292 -> ??)
--20841-- scheduler: 170,571,773 jumps (bb entries).
--20841-- scheduler: 1,705/2,183,705 major/minor sched events.
--20841-- sanity: 1706 cheap, 41 expensive checks.
--20841-- exectx: 24,593 lists, 12,321 contexts (avg 0 per list)
--20841-- exectx: 2,089,944 searches, 2,103,665 full compares (1,006 per 1000)
--20841-- exectx: 1,445 cmp2, 15 cmp4, 0 cmpAll
--20841-- errormgr: 7 supplist searches, 121 comparisons during search
--20841-- errormgr: 6 errlist searches, 15 comparisons during search
       
Post is unread #37 Jul 30, 2009, 2:17 pm
Go to the top of the page
Go to the bottom of the page

David Haley
Sorcerer
GroupMembers
Posts903
JoinedJan 29, 2007

No offense, Apoc, but if you think that a buffer overflow is caused by an entire distribution being fundamentally buggy, you are a little bit ignorant of how these things work. :rolleyes:

I wish people would stop spreading all this stupid FUD about distributions. If you're using a standard distribution -- one of the big ones, that is -- there is really no reason for things to break on one system and work on another all other things being equal (lib versions, compiler versions, etc.). If they do, it is an indication of using something that is in fact non-standard in the code itself, that implicitly relies on a feature or bug of a particular distribution's workings.
       
Post is unread #38 Jul 30, 2009, 2:21 pm
Go to the top of the page
Go to the bottom of the page

David Haley
Sorcerer
GroupMembers
Posts903
JoinedJan 29, 2007

To prove the point...

$ valgrind ../src/afkmud                                                                                                                          [17:18]
==22178== Memcheck, a memory error detector.
==22178== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==22178== Using LibVEX rev 1884, a library for dynamic binary translation.
==22178== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==22178== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework.
==22178== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==22178== For more details, rerun with: -v
==22178== 
Thu Jul 30, 2009 5:18:19 PM EDT :: Booting Database
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Thu Jul 30, 2009 5:18:20 PM EDT :: [*****] BOOT: ---------------------[ Boot Log ]--------------------
Thu Jul 30, 2009 5:18:20 PM EDT :: Database bootup starting.
Thu Jul 30, 2009 5:18:20 PM EDT :: Loading sysdata configuration...
Thu Jul 30, 2009 5:18:20 PM EDT :: Initializing libdl support...
Thu Jul 30, 2009 5:18:20 PM EDT :: Verifying existence of login greeting...
Thu Jul 30, 2009 5:18:20 PM EDT :: Login greeting located.
Thu Jul 30, 2009 5:18:20 PM EDT :: Loading commands...
Thu Jul 30, 2009 5:18:20 PM EDT :: Loading spec_funs...
Thu Jul 30, 2009 5:18:20 PM EDT :: Loading helps...
Thu Jul 30, 2009 5:18:21 PM EDT :: Loading channels...
Thu Jul 30, 2009 5:18:21 PM EDT :: Loading overland maps...
Thu Jul 30, 2009 5:18:21 PM EDT :: Initializing map grid array....
Thu Jul 30, 2009 5:18:21 PM EDT :: Loading continent of One.....
Thu Jul 30, 2009 5:18:24 PM EDT :: Loading overland map exits....
Thu Jul 30, 2009 5:18:24 PM EDT :: Loading overland landmarks....
Thu Jul 30, 2009 5:18:24 PM EDT :: Loading landing sites....
Thu Jul 30, 2009 5:18:24 PM EDT :: Loading socials...
Thu Jul 30, 2009 5:18:25 PM EDT :: Loading skill table...
Thu Jul 30, 2009 5:18:25 PM EDT :: Sorting skill table...
Thu Jul 30, 2009 5:18:25 PM EDT :: Remapping slots to sns...
Thu Jul 30, 2009 5:18:25 PM EDT :: Loading classes
Thu Jul 30, 2009 5:18:28 PM EDT :: Loading races
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading Connection History
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading liquid table
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading mixture table
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading herb table
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading tongues
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading quest bit tables
Thu Jul 30, 2009 5:18:29 PM EDT :: [*****] BUG: load_abits: Cannot open abit file.
Thu Jul 30, 2009 5:18:29 PM EDT :: [*****] BUG: load_qbits: Cannot open qbit file.
Thu Jul 30, 2009 5:18:29 PM EDT :: Initializing random number generator
Thu Jul 30, 2009 5:18:29 PM EDT :: Setting Astral Walk target room
Thu Jul 30, 2009 5:18:29 PM EDT :: Setting time and weather
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading holiday chart...
Thu Jul 30, 2009 5:18:29 PM EDT :: Assigning gsn's
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading DNS cache...
Thu Jul 30, 2009 5:18:29 PM EDT :: Loading slay table...
Thu Jul 30, 2009 5:18:29 PM EDT :: Reading in area files...
Thu Jul 30, 2009 5:18:30 PM EDT :: void.are            : Version 1   Vnums: 11000 - 11999
Thu Jul 30, 2009 5:18:30 PM EDT :: entry.are           : Version 1   Vnums:   100 - 199  
Thu Jul 30, 2009 5:18:30 PM EDT :: astral.are          : Version 1   Vnums:  4350 - 4449 
Thu Jul 30, 2009 5:18:30 PM EDT :: one.are             : Version 1   Vnums: 50000 - 50499
Thu Jul 30, 2009 5:18:30 PM EDT :: immtrain.are        : Version 1   Vnums: 21100 - 21299
Thu Jul 30, 2009 5:18:30 PM EDT :: Loading ships...
Thu Jul 30, 2009 5:18:30 PM EDT :: Loading runes...
Thu Jul 30, 2009 5:18:30 PM EDT :: Loading runewords...
Thu Jul 30, 2009 5:18:31 PM EDT :: Fixing exits...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading clans...
Thu Jul 30, 2009 5:18:31 PM EDT :: $
Thu Jul 30, 2009 5:18:31 PM EDT :: Cleaning up clan data...
Thu Jul 30, 2009 5:18:31 PM EDT :: Done clans
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading deities...
Thu Jul 30, 2009 5:18:31 PM EDT :: Done deities
Thu Jul 30, 2009 5:18:31 PM EDT :: Counting pfiles.....
Thu Jul 30, 2009 5:18:31 PM EDT :: Pfile count completed.
Thu Jul 30, 2009 5:18:31 PM EDT :: Total pfiles scanned: 1
Thu Jul 30, 2009 5:18:31 PM EDT :: Total exempted pfiles: 0
Thu Jul 30, 2009 5:18:31 PM EDT :: Updating rare item counts.....
Thu Jul 30, 2009 5:18:31 PM EDT :: Checking player files....
Thu Jul 30, 2009 5:18:31 PM EDT :: Checking corpses....
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading corpses...
Thu Jul 30, 2009 5:18:31 PM EDT :: Making wizlist
Thu Jul 30, 2009 5:18:31 PM EDT :: Building wizinfo
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading MSSP Data...
Thu Jul 30, 2009 5:18:31 PM EDT :: Initializing area reset events...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading auction sales list...
Thu Jul 30, 2009 5:18:31 PM EDT :: No sales file found.
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading auction houses...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading clan/guild shops...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading prototype area files...
Thu Jul 30, 2009 5:18:31 PM EDT :: Fixing prototype zone exits...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading boards...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading bans...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading auth namelist...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading Immortal Hosts...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading Projects...
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading Morphs...
Thu Jul 30, 2009 5:18:31 PM EDT :: Done.
Thu Jul 30, 2009 5:18:31 PM EDT :: Loading weather vector data...
Thu Jul 30, 2009 5:18:31 PM EDT :: Initializing area weather data...
Thu Jul 30, 2009 5:18:31 PM EDT :: Area weather data initialized.
Thu Jul 30, 2009 5:18:31 PM EDT :: Registering chess packet handler...
Thu Jul 30, 2009 5:18:31 PM EDT :: Database bootup completed.
Thu Jul 30, 2009 5:18:31 PM EDT :: Initializing main socket
Thu Jul 30, 2009 5:18:31 PM EDT :: Main socket initialized
Thu Jul 30, 2009 5:18:31 PM EDT :: AFKMud ready on port 9500.
Thu Jul 30, 2009 5:18:31 PM EDT :: IMC: Loading IMC2 command table...
Thu Jul 30, 2009 5:18:31 PM EDT :: IMC: Loading IMC2 network data...
Thu Jul 30, 2009 5:18:31 PM EDT :: IMC: Loading IMC2 help file...
Thu Jul 30, 2009 5:18:31 PM EDT :: IMC: Loading IMC2 color table...
Thu Jul 30, 2009 5:18:31 PM EDT :: IMC: IMC2 network data loaded. Autoconnect not set. IMC2 will need to be connected manually.
Thu Jul 30, 2009 5:18:31 PM EDT :: No people online yet. Suspending autonomous update handlers.
Thu Jul 30, 2009 5:19:00 PM EDT :: Waking up autonomous update handlers.
Thu Jul 30, 2009 5:19:03 PM EDT :: Incoming connection: 127.0.0.1, port 55478.
Thu Jul 30, 2009 5:19:03 PM EDT :: Preloading player data for: Admin
Thu Jul 30, 2009 5:19:05 PM EDT :: No more people online. Autonomous actions suspended.
Thu Jul 30, 2009 5:19:44 PM EDT :: Waking up autonomous update handlers.
Thu Jul 30, 2009 5:19:46 PM EDT :: Incoming connection: local-host, port 55479.
Thu Jul 30, 2009 5:19:46 PM EDT :: Preloading player data for: Admin
Thu Jul 30, 2009 5:19:47 PM EDT :: Loading player data for Admin (14K)
Thu Jul 30, 2009 5:19:50 PM EDT :: Admin [local-host] has connected.
Thu Jul 30, 2009 5:19:51 PM EDT :: Xterm client detected for Admin.
Thu Jul 30, 2009 5:19:51 PM EDT :: Admin returns from beyond the void.
Thu Jul 30, 2009 5:19:56 PM EDT :: Log Admin: shutdown mud now
Thu Jul 30, 2009 5:19:56 PM EDT :: Saving players....
Thu Jul 30, 2009 5:19:56 PM EDT :: Admin saved.
Thu Jul 30, 2009 5:19:56 PM EDT :: Saving game world time....
Thu Jul 30, 2009 5:19:56 PM EDT :: Normal termination of game.
Thu Jul 30, 2009 5:19:56 PM EDT :: Cleaning up Memory.&d
Thu Jul 30, 2009 5:19:57 PM EDT :: No more people online. Autonomous actions suspended.
==22178== 
==22178== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 21 from 3)
==22178== malloc/free: in use at exit: 421,967 bytes in 1,447 blocks.
==22178== malloc/free: 914,547 allocs, 913,100 frees, 46,974,987 bytes allocated.
==22178== For counts of detected errors, rerun with: -v
==22178== searching for pointers to 1,447 not-freed blocks.
==22178== checked 1,873,576 bytes.
==22178== 
==22178== LEAK SUMMARY:
==22178==    definitely lost: 421,935 bytes in 1,446 blocks.
==22178==      possibly lost: 0 bytes in 0 blocks.
==22178==    still reachable: 32 bytes in 1 blocks.
==22178==         suppressed: 0 bytes in 0 blocks.
==22178== Rerun with --leak-check=full to see details of leaked memory.


As you can see, it works just fine for me, even though I'm running on this supposedly terrible Ubuntu distribution.

Again, no offense, but 999 to 1 that the distribution is not at fault for this bug.
       
Post is unread #39 Jul 30, 2009, 2:41 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

You're most likely not using the distro he said he was using. So do keep that in mind. He's provided some pretty clear evidence of something not quite right with whatever "Mint Linux" is - generating warnings I've not seen. Also generating a valgrind event for something in show_map which I've already clearly demonstrated works just fine on Fedora 11.

The only legit thing I've seen uncovered so far is the buffer issue in destroy_immdata, which can't have been called in his case because he's not even able to log on. Between that and GNU's fiddling with GCC 4.4.0, I can find no other faults. So perhaps if he shows back up he can make another attempt with AFKMud 2.1.3 and see if it changes anything - I highly doubt it though.

I've seen FAR too many people across FAR too many setups complain about stupid results when running Ubuntu. So perhaps it's not Debian in general but specifically the guys fiddling with Ubuntu and its derivatives. It ceases to be FUD when enough people, some of whom are in fact experienced enough to know WTF they're doing, all start getting wonky results.
       
Post is unread #40 Jul 30, 2009, 2:59 pm
Go to the top of the page
Go to the bottom of the page

apocalypticNRG
Fledgling
GroupMembers
Posts35
JoinedJul 29, 2009

Man, I have to say, I'm in love with Fedora, compared to Mint Linux. Wow what a difference, you can't even tell this is a linux machine. Its more like a vista ultimate. I have the 2 running side by side, with two different monitors, and its hard to even tell the difference. Besides, I'm looking to start working on a mud, not mess with inside of the compilers and such. I'm updating the software right now, so we'll see what kind of answers this generates. And hopefully in the end this will all be worth the trouble :).
       
Pages:<< prev 1, 2, 3 next >>