W3C home > Mailing lists > Public > www-lib@w3.org > July to September 2001

ftp access -> access violation

From: Oliver Steinau <Oliver.Steinau@STencode.de>
Date: Mon, 20 Aug 2001 16:40:47 +0200
Message-ID: <2B88AE35C609DF4F852D31FFA6FD5EE601A390@CAESAR.STencode.de>
To: <www-lib@w3.org>
(using 5.3.2)

I registered a filter using
        HTNet_addAfter(doTerminate, 0, 0, HT_ALL, HT_FILTER_LAST);

that is called after a request is finished; in this method I call a
HTEventList_stopLoop().

Works with HTTP requests just fine.

However, when I issue an ftp request (no user, just plain anonymous),
the request is processed just fine (ie. I get the file, using
HTLoadToFile), but the doTerminate callback is not called.

My "main loop" looks like (there's a wrapper function around it, of
course)
	HTRequest_new()
	HTLoadToFile()
	HTEventList_loop()
	HTRequest_delete()

When I request different documents via ftp, all works quite well (ie. I
get the documents), but the doTerminate callback is never called.
However, when I request the same document twice, HTLoadToFile results in
an access violation; the stack backtrace looks like:

HTList_addObject(_HTList * 0x002202e0, void * 0x011fd9e8) line 48 + 6
bytes
HTError_add(_HTList * 0x002202e0, int 1, int 0, int 57, void *
0x00000000, unsigned int 0, char * 0x002c245c) line 76 + 13 bytes
HTRequest_addError(_HTRequest * 0x011e9718, int 1, int 0, int 57, void *
0x00000000, unsigned int 0, char * 0x002c245c) line 424 + 36 bytes
FTPEvent(unsigned int 528, void * 0x011eaf70, int 196672) line 1408 + 24
bytes
killPipeline(_HTHost * 0x011f4380, int 196672) line 140 + 35 bytes
HostEvent(unsigned int 528, void * 0x011f4380, int 196672) line 257 + 14
bytes
EventListTimerHandler(_HTTimer * 0x011fdd08, void * 0x011fdc68, int
196672) line 215 + 26 bytes
Timer_dispatch(_HTList * 0x011fdd60, _HTList * 0x011f3eb0) line 116 + 24
bytes
HTTimer_next(unsigned long * 0x0012f110) line 324 + 13 bytes
HTEventList_loop(_HTRequest * 0x011fd458) line 674 + 12 bytes
<<my wrapper function here>>


and the "offending statement" is
	newNode->next = me->next;

-- obviously, "me" doesn't seem to point to valid storage...

Any hint?

TIA,

/oliver
Received on Monday, 20 August 2001 10:41:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:39 GMT