I have done new stuff for the quake 3 engine,
this little code fixes some bugs you might know:

  • cvar overflow bug (denies cvar values over 255 chars)
  • download bug (aka directory traversal bug)
  • callvote bug (checks for invalid commands in callvote)
  • debug commands (disable debug commands, if sv_cheats is 0, most used in JAmp: v1.0.0.0)

PLUS: it allows to log all console output, including developer messages.

How it works?
In linux you can preload libs by using LD_PRELOAD, this is the way i did it.
Hooking some engine functions and fixing it then.

Well it works for linux only, neither you can fix these bugs easily on win.
Works on JKA & JK2!

Put these cvars to your start arguments to disable
certian fixes:

1. xim_dlfix 0 (disables the download fix)
2. xim_debugfix 0 (disables the debug fix)
3. xim_votefix 0 (disables the vote fix)
4. xim_log (allows to log console ouptut to file)

Note: 1. the cvar overflow fix is always enabled 2. all cvars (except xim_log) cannot be changed if the server is running, to change settings you need to restart the server 3. If you dont specify any arguments, all fixes will be active automaticly (except xim_log)

You need to set the LD_PRELOAD env variable in order
to make ximfix work.

Note to Serverhosters: You can use this programm to force some variables to the server check line 116 to add your own fixes cvars

Example Startup:
LD_PRELOAD=”./ximfix.so” ./linuxjampded +set xim_dlfix 0 +set xim_debugfix 0 +set xim_votefix 0 +map mp/ffa1
(would start ximfix and disables the download fix & debug fix & callvote fix)

LD_PRELOAD=”./ximfix.so” ./linuxjampded +set xim_dlfix 0 +map mp/ffa1
(would start ximfix and disables the download fix only)

LD_PRELOAD=”./ximfix.so” ./linuxjampded +map mp/ffa1
(would start ximfix with all fixes enabled)

You can compile it yourself or use my precompiled lib.
Download here: