# URGENT #
## vm/internal/simul\_efun.cc ##
- init\_simul\_efun
  possible overflow in strcat(buf, ".c") change to strncat!!!
  search complete source for other occurances
- portability problems
    add gnulib modules

# Have Time #
## documentation ##
- complete docs/efun/contrib [packages/contrib]
- check efun::shadowp/efun::query_shadowing
- expand docs for efun:implode (missing three arg form)
- missing docs for efun::defer

## packages/contrib/contrib.cc ##
network\_stats
- make maximum number of ports configurable?
  - if yes look for possible buffer overflows!!!

query\_num
- rework code? uses goto

string\_difference
- rename? there are different kind of string differences...

## packages/core/ed.cc ##
- missing 'check\_valid\_path(...)' for write operation with new api.

## packages/core/file.cc ##
- add support for 'lstat' if available
  - efun::get\_dir
  - efun::file\_size
  - efun::stat / new efun::lstat ?
- remove master::valid\_link ?
  
  efun::link internally uses efun::rename with it's inherit security checks
  against master::valid\_write making either double checks or reducing
  master::valid\_link to a simple switch: mudlib _generally_ allows / forbids
  linking
- alternative:
  remove dependency on efun::rename from efun::link and correctly support
  links within all relevant functions

## path handling ##
- simplify handling of paths:
  
  There are dozends of places where paths are brought into some canonical
  form.
  Make sure each supplied path, either by mudlib, runtime configuration or
  generated by the driver itself, IS canonical and work from there...

## vm/internal/simulate.cc ##
- give_uid_to_object
  after calling master::creator_file doubled check for ```!ret```.
