View Single Post
Old 09-24-2015, 07:36 AM  
Prodigy
Member
 
Join Date: Jul 2009
Posts: 50
Default

@Yil
Found out a bug, if let say a user edited "Active_Services" under [Network] on ioFTPD.ini to other name other than FTP_Services and forgot to rename service name on above line "# FTP SETUP #", ioFTPD will crash with a crash dump. As it will failed to recognize proper "Active_Services" in which in this case the user forgot to rename it as the same as in the Active_Services.

I think ioFTPD should log and handle with like "Cannot found "ServiceName" Active_Services", and gracefully exit the process.

Another bug, ioFTPD will crashes without a crash dump when executing "Site Drives" command from nxtools 1.2.1. Looks like it's a buffer overrun :
Code:
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** WARNING: Unable to verify checksum for C:\ioFTPD\system\tcl85tg.dll
*** WARNING: Unable to verify checksum for C:\ioFTPD\lib\nxHelper\nxHelper.dll
*** WARNING: Unable to verify checksum for C:\ioFTPD\system\ioFTPD.exe

FAULTING_IP: 
ucrtbased!issue_debug_notification+30 [d:\th\minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp @ 125]
0fe08500 cc              int     3

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 0fe08500 (ucrtbased!issue_debug_notification+0x00000030)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00000000

FAULTING_THREAD:  000026ec

DEFAULT_BUCKET_ID:  STATUS_BREAKPOINT

PROCESS_NAME:  ioFTPD.exe

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid

EXCEPTION_PARAMETER1:  00000000

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

APP:  ioftpd.exe

ANALYSIS_VERSION: 10.0.10240.9 x86fre

BUGCHECK_STR:  STATUS_BREAKPOINT

LAST_CONTROL_TRANSFER:  from 0fe086a1 to 0fe08500

STACK_TEXT:  
02efb8ec 0fe086a1 0fd82fe4 50c6d6b8 00000000 ucrtbased!issue_debug_notification+0x30
02efb904 0fe22b8a 0fd82fe4 896eb4a8 02efb940 ucrtbased!__acrt_report_runtime_error+0x11
02efb914 50bede0e 02efbcdc ffffffff 77cf8b24 ucrtbased!abort+0x1a
02efb940 50bedc0e 50c7035c 02efb980 02efb960 tcl85tg!Tcl_PanicVA+0x1ce
02efb954 50c057d3 50c7035c 50c70348 02efbcdc tcl85tg!Tcl_Panic+0x1e
02efb96c 77c506db 04463510 77cf8b24 ffffffff tcl85tg!Tcl_SetStringObj+0x23
02efbcc4 50b36930 00000000 026ea478 00000004 nxHelper!VolumeObjCmd+0x28b
02efbd78 50b9641e 026ea478 00000004 043dae20 tcl85tg!TclEvalObjvInternal+0x350
02efd358 50bfdc05 026ea478 04ae86c8 02efd3bc tcl85tg!TclExecuteByteCode+0x20ee
02efd388 50bfd53d 026ea478 04462f28 00000001 tcl85tg!TclObjInterpProcCore+0xb5
02efd3a4 50b36930 04b08a40 026ea478 00000001 tcl85tg!TclObjInterpProc+0x4d
02efd458 50b9641e 026ea478 00000001 043dad64 tcl85tg!TclEvalObjvInternal+0x350
02efea38 50bfdc05 026ea478 04b3a050 02efea9c tcl85tg!TclExecuteByteCode+0x20ee
02efea68 50bfd53d 026ea478 04463060 00000001 tcl85tg!TclObjInterpProcCore+0xb5
02efea84 50b36930 027d2e30 026ea478 00000002 tcl85tg!TclObjInterpProc+0x4d
02efeb38 50b34f90 026ea478 00000002 043dab58 tcl85tg!TclEvalObjvInternal+0x350
02efec6c 50b335a0 026ea478 04b2a3e0 000084c9 tcl85tg!TclEvalEx+0x9f0
02efec90 50bd0570 026ea478 04b2a3e0 000084c9 tcl85tg!Tcl_EvalEx+0x20
02efed38 50bcfc52 026ea478 044627f0 00000000 tcl85tg!Tcl_FSEvalFileEx+0x2f0
02efed4c 50bcde02 026ea478 044627f0 cccccccc tcl85tg!Tcl_FSEvalFile+0x12
02efed6c 00484e13 026ea478 027ee144 02eff17c tcl85tg!Tcl_EvalFile+0x42
02eff0bc 004842f4 02eff154 02eff138 00000000 ioFTPD!TclExecute2+0xb13
02eff0d4 0041b48c 02eff154 02eff138 02effe64 ioFTPD!TclExecute+0x14
02eff17c 00426d41 02effe40 02efff4c 02effe88 ioFTPD!RunEvent+0x34c
02effe64 00426972 044cf570 02efff34 00000000 ioFTPD!FTP_AdminCommands2+0x3c1
02effe78 00421e3c 044cf570 02efff34 02efff54 ioFTPD!FTP_AdminCommands+0x12
02efff4c 00489eb5 044cf570 00489a00 00489a00 ioFTPD!FTP_Command+0x66c
02efff80 748a3744 025de878 748a3720 7f92f328 ioFTPD!WorkerThread+0x4b5
02efff94 7776a064 025de878 9f964bee 00000000 KERNEL32!BaseThreadInitThunk+0x24
02efffdc 7776a02f ffffffff 7778d7ee 00000000 ntdll!__RtlUserThreadStart+0x2f
02efffec 00000000 00489a00 025de878 00000000 ntdll!_RtlUserThreadStart+0x1b


FOLLOWUP_IP: 
ucrtbased!issue_debug_notification+30 [d:\th\minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp @ 125]
0fe08500 cc              int     3

FAULTING_SOURCE_LINE:  d:\th\minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp

FAULTING_SOURCE_FILE:  d:\th\minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp

FAULTING_SOURCE_LINE_NUMBER:  125

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  ucrtbased!issue_debug_notification+30

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ucrtbased

IMAGE_NAME:  ucrtbased.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  559f3a99

STACK_COMMAND:  ~7s ; kb

BUCKET_ID:  STATUS_BREAKPOINT_ucrtbased!issue_debug_notification+30

PRIMARY_PROBLEM_CLASS:  STATUS_BREAKPOINT_ucrtbased!issue_debug_notification+30

FAILURE_PROBLEM_CLASS:  STATUS_BREAKPOINT

FAILURE_EXCEPTION_CODE:  80000003

FAILURE_IMAGE_NAME:  ucrtbased.dll

FAILURE_FUNCTION_NAME:  issue_debug_notification

FAILURE_SYMBOL_NAME:  ucrtbased.dll!issue_debug_notification

FAILURE_BUCKET_ID:  STATUS_BREAKPOINT_80000003_ucrtbased.dll!issue_debug_notification

ANALYSIS_SOURCE:  UM

FAILURE_ID_HASH_STRING:  um:status_breakpoint_80000003_ucrtbased.dll!issue_debug_notification

FAILURE_ID_HASH:  {873e5c52-b2c0-29e3-e2ff-a9970cd592ad}

Followup:     MachineOwner
---------
From the looks of it it seems either tcl or nxhelper module has been crashed?, i have searched about hot-loading dll module in c/c++ and found out about project Aurora :
Code:
Runtime-Compiled C++ is a way to reliably make major changes to your C++ code at runtime and see the results immediately.
So whenever a module/code crashed, it won't crash the whole program, mostly noticeable in game application and telecommunication industry, when user can hot swapping features without restarting the apps. Or for example in other language such as erlang.

Is there any plan to implement project aurora to ioFTPD?.

I am dreaming of ioFTPD for being run for couple of years without crashes, where tcl/modules crashes will be notified and reloading its modules after crash.

Last edited by Prodigy; 09-26-2015 at 01:56 PM.
Prodigy is offline   Reply With Quote