403Webshell
Server IP : 82.208.35.60  /  Your IP : 216.73.216.70
Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31
System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64
User : studiokobylisy_cz ( 1008)
PHP Version : 7.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/ports/sysutils/zidrav/files/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/ports/sysutils/zidrav/files/patch-core.cpp
--- core.cpp.orig	2005-05-21 22:16:50.000000000 +0200
+++ core.cpp	2014-01-07 06:41:30.000000000 +0100
@@ -38,7 +38,7 @@
 
 void be_write32le(iostream &output, char *buf)
 {
-	int data;
+	int data = 0;
 	data = *(int*)buf;
 
 	data = SwapBO32(data);
@@ -48,7 +48,7 @@
 
 void be_read32le(istream &input, char *buf)
 {
-	int data;
+	int data = 0;
 	input.read((char *)&data, 4);
 
 	data = SwapBO32(data);
@@ -59,7 +59,7 @@
 
 	char	*buffer;
 	int		i;
-	long	crc;
+	crc32_type	crc;
     short   oldprc = 0;
     
 	output.write( ZC, 8 );
@@ -105,11 +105,11 @@
 
 void MakePatchCore( istream &cdti, istream &vstr, iostream &output, int cdtlen, int vstrlen, int * efound) {
 
-	long filesize;
-	long blocksize;
+	long filesize = 0; // reset all 64bit
+	long blocksize = 0; // reset all 64bit
 
-	long crc;
-	long cdtcrc;
+	crc32_type crc;
+	crc32_type cdtcrc = 0; // reset all 64bit
 
 	long curbs;
 
@@ -207,12 +207,12 @@
 
 void ApplyPatchCore( istream &cdpi, iostream &pstr, int cdplen, int pstrlen) {
 
-	long filesize;
-	long blocksize;
+	long filesize = 0; // reset all 64bit
+	long blocksize = 0; // reset all 64bit
 
 	long curbs = 0;
 
-	long offset;
+	long offset = 0; // reset all 64bit
 
 	char *buffer = NULL;
 
@@ -266,7 +266,8 @@
 
 	char minibuff[9];
 
-	long crc;
+	crc32_type crc;
+	crc32_type filecrc = 0; // reset all 64bit
 
 	buffer = new char[10];
 
@@ -317,12 +318,12 @@
     }
 
 	input.seekg( 0 );						// go to the beginning
-	input.read( buffer, datalen );		// and pull it all
+	input.read( buffer, datalen - 4 );		// and pull it all
+        read32le(input, (char *)&filecrc);
 
 	CreateChecksum( buffer, datalen - 4, &crc );
 
-	if( crc != int32tole(*(int *)&buffer[ datalen - 4 ]) ) {
-		delete [] buffer;
+	if( crc != filecrc ) {
         switch(emsg)
         {
             case IDS_UPT_INVCDT:
@@ -342,7 +343,7 @@
 void MakeOverallChecksum( iostream &st, long size ) {
 
 	char *buffer;
-	long crc;
+	crc32_type crc;
 
     // FIXME: trying to load whole file... again... :(
 	buffer = new char[size];
@@ -367,7 +368,7 @@
 #define DO8( buffer )  DO4( buffer ); DO4( buffer );
 #define DO16( buffer )  DO8( buffer ); DO8( buffer );
 
-void CreateChecksum( char *buffer, long size, long *crc ) {
+void CreateChecksum( char *buffer, long size, crc32_type *crc ) {
 
 	*crc = 0;
 

Youez - 2016 - github.com/yon3zu
LinuXploit