mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Modified cSVDRP::CmdGRAB() to avoid writing into const data
This commit is contained in:
		| @@ -921,6 +921,7 @@ Ludwig Nussel <ludwig.nussel@web.de> | ||||
|  for adding some missing 'const' keywords | ||||
|  for pointing out that "%016llX" should be used instead of "%016LX" | ||||
|  for adding some missing 'const' keywords to avoid compilation errors with gcc 4.4 | ||||
|  for reporting that cSVDRP::CmdGRAB() writes into const data | ||||
|  | ||||
| Thomas Koch <tom@harhar.net> | ||||
|  for his support in keeping the Premiere World channels up to date in 'channels.conf' | ||||
|   | ||||
							
								
								
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -6127,3 +6127,5 @@ Video Disk Recorder Revision History | ||||
|   Reinhard Nissl). | ||||
| - Added some missing 'const' keywords to avoid compilation errors with gcc 4.4 | ||||
|   (thanks to Ville Skytt<74> and Ludwig Nussel). | ||||
| - Modified cSVDRP::CmdGRAB() to avoid writing into const data (reported by | ||||
|   Ludwig Nussel). | ||||
|   | ||||
							
								
								
									
										13
									
								
								svdrp.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								svdrp.c
									
									
									
									
									
								
							| @@ -10,7 +10,7 @@ | ||||
|  * and interact with the Video Disk Recorder - or write a full featured | ||||
|  * graphical interface that sits on top of an SVDRP connection. | ||||
|  * | ||||
|  * $Id: svdrp.c 2.4 2009/06/06 13:42:52 kls Exp $ | ||||
|  * $Id: svdrp.c 2.5 2009/06/06 14:03:55 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "svdrp.h" | ||||
| @@ -798,16 +798,17 @@ void cSVDRP::CmdGRAB(const char *Option) | ||||
|      char RealFileName[PATH_MAX]; | ||||
|      if (FileName) { | ||||
|         if (grabImageDir) { | ||||
|            cString s; | ||||
|            char *slash = strrchr(FileName, '/'); | ||||
|            cString s(FileName); | ||||
|            FileName = s; | ||||
|            const char *slash = strrchr(FileName, '/'); | ||||
|            if (!slash) { | ||||
|               s = AddDirectory(grabImageDir, FileName); | ||||
|               FileName = s; | ||||
|               } | ||||
|            slash = strrchr(FileName, '/'); // there definitely is one | ||||
|            *slash = 0; | ||||
|            char *r = realpath(FileName, RealFileName); | ||||
|            *slash = '/'; | ||||
|            cString t(s); | ||||
|            t.Truncate(slash - FileName); | ||||
|            char *r = realpath(t, RealFileName); | ||||
|            if (!r) { | ||||
|               LOG_ERROR_STR(FileName); | ||||
|               Reply(501, "Invalid file name \"%s\"", FileName); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user