Commit graph

46 commits

Author SHA1 Message Date
Zack Middleton
df8f657f09 Fix exploit to bypass filename restrictions on Windows
Windows API ignores all trailing spaces and periods which can get around
Quake 3 file system restrictions. QVM opening 'uix86.dll.' actually
opens 'uix86.dll' which allows QVM to write native code.

This is done in the low-level Sys_FOpen() instead of the function
directly used by VMs ( FS_FOpenFileByMode() ) in case there are engine
commands now or in the future that can read or write arbitrary files.

Reported by Noah Metzger (Chomenor).
2018-01-30 07:59:25 -06:00
Zack Middleton
05858d30e8 Don't load libraries with non-standard file extensions
Also don't allow writting files ending in a library extension such
as ".so.0" or ".dylib.0".
2017-05-24 10:28:46 -05:00
Zack Middleton
fbada2caf6 Fix compiling when KEY_WOW64_32KEY is missing from system headers 2017-05-24 10:01:19 -05:00
Max Crofts
7ff610db35 Detect GOG install path 2017-04-07 16:26:26 +10:00
Max Crofts
f5143405f1 Add missing RegCloseKey to Sys_SteamPath 2017-04-07 15:18:28 +10:00
SmileTheory
f663104cfc Access 32-bit registry key from 64-bit Windows correctly. 2015-12-02 17:07:26 -08:00
Zack Middleton
1902b6e659 Fix compiling on Windows without Steam path/appid 2015-09-26 19:26:21 -05:00
SmileTheory
2f77a98afe Use Windows uninstall path to find Steam Quake 3 install.
Thanks Pan- and Ensiform for pointing this out.
2015-09-25 04:55:41 -07:00
Zack Middleton
7e96fd9cb6 Make steam path optional at compile time for standalone games 2015-09-22 19:25:16 -05:00
SmileTheory
f860a753e0 Add Steam's Quake 3 Arena dir to game dirs on Windows. 2015-09-17 02:53:19 -07:00
Zack Middleton
993b838f27 Fix Windows file list extension check
Windows' Sys_ListFiles would add files that contain the extension anywhere,
not only at the end of the file name.

Example: "word.pk3omghacks" use to be loaded as a pk3 file.
2015-07-04 20:46:03 -05:00
Zack Middleton
137ddb9dc6 Get clipboard data from SDL
This makes pasting in client console and UI edit fields work on X11 and OS X.

Sys_GetClipboardData is only used by client, so returning NULL in dedicated is fine.
2014-08-27 04:32:05 -05:00
Tim Angus
d9d52f0306 Merge branch 'master' into sdl2
Conflicts:
	Makefile
	code/renderercommon/qgl.h
	code/renderergl1/tr_local.h
	code/sdl/sdl_glimp.c
2013-05-08 14:27:15 +01:00
Tim Angus
230af8c9e9 Fix shfolder.dll not getting freed 2013-04-09 21:43:01 +01:00
Zack Middleton
2e45edb550 5717 - Gamecode can open file "" for reading 2013-02-15 21:08:47 -06:00
Tim Angus
b9355c5f12 The in_mouse stuff makes no sense in SDL2 2013-01-28 09:25:38 +00:00
Thilo Schulz
ded2b11959 Fix this for real now. 2012-07-23 21:27:17 +00:00
Thilo Schulz
053aa8ead7 Fix windows as well 2012-07-07 18:22:19 +00:00
Zachary Slater
b5acc31a4d CVE-2012-3345 2012-06-14 18:28:58 +00:00
Thilo Schulz
8a500d71da Set default rounding mode to FE_NEAREST again. Thanks to Matthias Bentrup for providing some explanations. 2011-09-27 14:43:20 +00:00
Thilo Schulz
a447aa82af Fix #if macros for idx64 and id386 2011-06-15 14:10:20 +00:00
Thilo Schulz
03201aff22 - Add MASM assembler files for MSVC x64 projects to support vm_x86 in x64 mode
- Clean up ftol()/snapvector() mess
- Make use of SSE instructions for ftol()/snapvector() if available
- move ftol/snapvector pure assembler to inline assembler, this will add x86_64 and improve support for different calling conventions
- Set FPU control word at program startup to get consistent behaviour on all platforms
2011-06-13 09:56:39 +00:00
Thilo Schulz
876fd7dcb9 - Add HOMEPATH default name define to q_shared.c, patch by uZu (#4973)
- Reverted change from (#4972) and implemented the other suggestion to be consistent with cl_cgame.c and cl_ui.c
2011-05-04 15:39:35 +00:00
Thilo Schulz
5769bed4a3 Make Sys_SetEnv behave alike on Windows and Linux 2011-04-18 00:39:15 +00:00
Thilo Schulz
3bf8ec2dab (#4925) - com_pipefile to create a named pipe for sending commands from other processes, patch by Chris Schwarz 2011-03-10 01:01:27 +00:00
Thilo Schulz
f03ee4b61c Oops typo. 2011-02-06 18:59:39 +00:00
Thilo Schulz
3148416c04 - Change runtime standalone detection:
* com_standalone now read-only
  * add new cvars com_basegame, com_homepath
  * standalone now automatically detected when com_basegame is set to something different than baseq3 and no id pak pk3s are found
  * This fixes https://bugzilla.icculus.org/show_bug.cgi?id=4699
- Replace a few hardcoded string literals with macros
- Add checks for Team Arena PK3s to FS_CheckPak0()
2011-02-04 12:04:56 +00:00
Thilo Schulz
fa8201c9b6 Delete unused variable 2011-01-31 22:09:47 +00:00
Thilo Schulz
5cd116d3ad Only adjust timer resolution for clients 2011-01-31 20:32:00 +00:00
Thilo Schulz
e0a85521c9 Explicitly set timer resolution on windows 2011-01-31 20:23:05 +00:00
Ludwig Nussel
368a3be2a6 64bit Windows fix (patch by Marcus Meissner) 2010-04-16 09:29:34 +00:00
Ludwig Nussel
760f4a1949 64bit Windows support (patch by Michael Menegakis) 2010-02-28 09:00:02 +00:00
Tim Angus
005f870ebe * Sys_Dialog for more user friendly error reporting
* (bug #3932) Recovery from bad video settings
2010-02-15 16:20:33 +00:00
Tim Angus
108705d31f * Rewrite win32 Sys_Mkdir to use CreateDirectory
* Make FS_ReplaceSeparators filter out runs of multiple separators
* Make FS_CreatePath skip creation of the root directory
2009-11-07 16:43:02 +00:00
Tim Angus
eee9770fbf * Reimplement r1597-1598 in a better way (Oopss)
* Fix Sys_SetEnv warning
2009-11-05 20:20:23 +00:00
Thilo Schulz
d574e10bc4 Ugh. Forgotten ) 2009-11-03 20:44:16 +00:00
Thilo Schulz
bd2ab9bffd - implement r_noborder, inspired by patch from ensiform (#4289)
- Add Sys_SetEnv for portable setting of environment variables
 - Default ioquake3 to appear on the center of the screen if running in windowed mode.
2009-11-03 20:29:43 +00:00
Tim Angus
9f6cee30d3 * Remove disabling of stdout/err redirection on windows as it doesn't work
(since the environment variable is acted upon by the SDL_main stuff, which
  happens before our main)
2009-10-27 11:48:18 +00:00
Tim Angus
504bd58b90 * Disable stdout/stderr redirection on Windows 2009-10-16 22:36:57 +00:00
Tim Angus
64a0a078d2 * Fix warning in cl_main.c
* Fix bug #4026 (SDL dx backend doesn't work on some machines)
2009-09-14 12:34:31 +00:00
Tim Angus
d4d5527a89 * Add Sys_GLimpInit for platform specific GLimp initialisation
* Move Unix specific signal handlers to Sys_PlatformInit
* (Windows only) Don't set the SDL video driver if SDL_VIDEODRIVER is already
  set externally
* (Windows only) Use the "windib" SDL video driver if in_mouse is set to -1
2008-08-08 21:35:33 +00:00
Tim Angus
00e790ce00 * Change win32 client Sys_Sleep so it ONLY sleeps since before it was waking on
more or less any input event; fine for the server, not so much use for the
  client
* In the main loop, don't bother sleeping if it's going to be less than 10ms as
  the methods we're using to sleep at the moment aren't very precise
* Add Sys_PlatformInit for platform specific initialisation
* In win32 Sys_PlatformInit force selection of the DirectX SDL backend in order
  to get better fullscreen mouse input (in conjunction with a patched SDL DLL
  http://bugzilla.libsdl.org/show_bug.cgi?id=265)
2008-08-03 19:42:53 +00:00
Tim Angus
0124371c01 * Use Sys_Sleep to limit FPS, which will save CPU
* Add com_maxfpsUnfocused and com_maxfpsMinimized; self explanatory
* Fix reopening of bug 3703, I hope
2008-07-21 22:02:54 +00:00
Tim Angus
3cde9bf0dc * Add con_log.c to log all console output
* Add con_passive.c to cut down on #ifdef DEDICATED in sys_main.c
* Add Sys_ErrorDialog to report ERR_FATALs to the user
  + On Windows use a MessageBox and offer to copy the console log to the
    clipboard
  + On everything else print to the terminal and save the console log as
    crashlog.txt
2007-11-30 18:32:52 +00:00
Tony J. White =
e46fe24426 * rewrite of the win32 dedicated console:
1) NET_Sleep() no longer watches for input, Sys_Sleep() added for waiting
     on input.
  2) Added "CtrlHandler" for trapping Ctrl-C and other quit methods not
     handled by signals on windows
  3) Added history support
  4) Added tab completion
  5) Removed automatic cursor/scroll adjustment (too problematic)
  6) Enable mousewheel scrolling
  7) Stop using the InputBuffer for editing

  This seems to work pretty well now, but I jumped the gun on a previous
  commit message by saying you can scroll now without locking up your server.
  That was only true up until the point that a server tried to print to
  the console, at that point it will hang until you release the scroll bar :(
  It may be possible to get around this by using a seperate thread for
  console output, but that's a whole new can of worms.
2007-09-15 02:22:58 +00:00
Tim Angus
672cfbf16f * Merge unified-sdl to trunk
* Bump Q3_VERSION to 1.35
2007-09-05 18:17:46 +00:00