Alex, I reinstalled all the source, cleaned and re-built libsnmp and snmptranslate, in that order. Problem still happens, with same stack trace.
Thanks, Phil Gillis -----Original Message----- From: Alex Burger [mailto:[EMAIL PROTECTED] Sent: Thursday, December 09, 2004 10:56 AM To: Gillis, Philip W (Philip) Cc: Net-Snmp-Coders (E-mail) Subject: Re: 5.2 crash in win32 Hi Phil. If you download a fresh 5.2 source and compile without changing any code, does the problem go away? Alex Gillis, Philip W (Philip) wrote: > Alex, > > No, the binary works fine! Hmmm. Don't know what's different. I'll attach > libsnmp.dsp. Maybe you can diff it with yours and spot something, perhaps a > preprocessor define or something. > > Thanks, > > Phil Gillis > > -----Original Message----- > From: Alex Burger [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 08, 2004 3:22 PM > To: Gillis, Philip W (Philip) > Cc: Net-Snmp-Coders (E-mail) > Subject: Re: 5.2 crash in win32 > > > Hi Phil. > > If you use the compiled snmptranslate from the Win32 binary available at > SF, do you get the same crash? > > I'll add your patch to CVS anyways, but I'm just curious to know why you > have the problem and I don't. :) > > Alex > > > Gillis, Philip W (Philip) wrote: > >>Hi Alex. >> >>I'm on Win2k Pro, 5.00.2195, Service Pack 4, and VC++ 6.0. >> >>Crashes consistently on SNMP_FREE, called from snmptranslate -Dread_config >>-IR -Td linkDown. >>Here's a stack trace, for what it's worth: >> >>NTDLL! 77fb6972() >>NTDLL! 77f8be26() >>KERNEL32! 7c58f76e() >>_CrtIsValidHeapPointer(const void * 0x0031f52d) line 1697 >>_free_dbg_lk(void * 0x0031f52d, int 1) line 1044 + 9 bytes >>_free_dbg(void * 0x0031f52d, int 1) line 1001 + 13 bytes >>free(void * 0x0031f52d) line 956 + 11 bytes >>netsnmp_getenv(const char * 0x00468764) line 1034 + 16 bytes >>read_config_files(int 1) line 1057 + 10 bytes >>read_premib_configs() line 854 + 7 bytes >>init_snmp(const char * 0x0045366c) line 820 >>main(int 5, char * * 0x00314198) line 238 + 10 bytes >>mainCRTStartup() line 338 + 17 bytes >>KERNEL32! 7c59893d() >> >>Thanks, >> >>Phil Gillis >> >>-----Original Message----- >>From: Alex Burger [mailto:[EMAIL PROTECTED] >>Sent: Monday, December 06, 2004 10:15 PM >>To: Gillis, Philip W (Philip) >>Cc: Net-Snmp-Coders (E-mail) >>Subject: Re: 5.2 crash in win32 >> >> >>Hi Phil. >> >>Gillis, Philip W (Philip) wrote: >> >> >> >>>In 5.2 win32, my snmp commands now crash, quite early on. >> >> >>What version of Windows and MSVC are you using? >> >> >> >>>I tracked it to netsnmp_getenv() in libsnmp\tools.c. First, it sets >>>temp = getenv(name), then looks in the registry if name was not found in >>>the registry. Then it calls setenv(temp) to set it from now on. Then >>>(here comes the crash), it calls SNMP_FREE(temp). If temp was found in >>>the environment first (not the registry), this crashes. On the second >>>call for the same variable, it will certainly be found in the >>>environment, and we crash. >> >> >>What you suggest makes sense. Getenv on both Windows and Linux returns >>a pointer to the variable in the environment space. It's not a copy of >>it, it's a pointer to the enviornment variable. Freeing this would be a >>bad idea. >> >>I tested on my system (Windows 2000, MSVC 6) and there is no crash when >>using either the registry or the environment variable, even when >>SNMPCONFPATH is loaded multiple times. For my testing I used: >> >> snmptranslate -Dread_config -IR -Td linkDown >> >>I also tested with a MinGW build before the 5.2 release and I didn't >>have any problems. >> >>I'm not sure why it's crashing for you but not for me but like I said, >>your change does seem to make sense. Knowing the version of your >>Windows etc may help. >> >> >> >>>Also, I found that when I just download and build the source, and use >>>build.bat, and let it install after building, the registry is not set >>>with the net-SNMP variables. Running win32\install-net-snmp.bat does >>>not help. I had to install the binaries, to get the variables in the >>>environment. >> >> >>I thought that the README.WIN32 file was updated with that information. >> I guess it didn't make it in. It's mentioned in the README for the >>binary (win32/dist/README.txt), which is included in the binary which >>you installed. I'll fix that for the next release. >> >>Alex >> >> >> >> >>>I did a quick fix to tools.c to prevent the freeing of vars returned >> >>>from getenv(): >> >>> int got_env = 0; // PWG kludge to avoid freeing temp from >>>getenv() >>> >>>... >>> >>>/* Try environment variable first */ >>> >>> temp = getenv(name); >>> >>> if (temp){ >>> >>> DEBUGMSGTL(("read_config", "netsnmp_getenv will return from ENV: >>>%s\n",temp)); >>> >>> got_env =1; // PWG added >>> >>> } >>> >>>... >>> >>> if (temp && !got_env) { // PWG added !got_env >>> >>> setenv(name, temp, 1); >>> >>> SNMP_FREE(temp); >>> >>> } >> >> >> >>------------------------------------------------------- >>SF email is sponsored by - The IT Product Guide >>Read honest & candid reviews on hundreds of IT Products from real users. >>Discover which products truly live up to the hype. Start reading now. >>http://productguide.itmanagersjournal.com/ >>_______________________________________________ >>Net-snmp-coders mailing list >>[EMAIL PROTECTED] >>https://lists.sourceforge.net/lists/listinfo/net-snmp-coders > > ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ Net-snmp-coders mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
