135 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
diff --git a/CompilerDependencies.h b/CompilerDependencies.h
 | 
						|
index b6c0577..c89b125 100644
 | 
						|
--- a/CompilerDependencies.h
 | 
						|
+++ b/CompilerDependencies.h
 | 
						|
@@ -146,7 +146,7 @@
 | 
						|
 #ifndef NOT_REFERENCED
 | 
						|
 #   define  NOT_REFERENCED(x) (x = x)
 | 
						|
 #endif
 | 
						|
-#ifdef _POSIX_
 | 
						|
+#ifdef IS_POSIX
 | 
						|
 typedef int SOCKET;
 | 
						|
 #endif
 | 
						|
 // #ifdef TPM_POSIX
 | 
						|
diff --git a/GpMacros.h b/GpMacros.h
 | 
						|
index ff4251d..3494b55 100644
 | 
						|
--- a/GpMacros.h
 | 
						|
+++ b/GpMacros.h
 | 
						|
@@ -84,7 +84,7 @@
 | 
						|
 #   define TEST_HASH(alg)
 | 
						|
 #endif // SELF_TEST
 | 
						|
 /* 5.11.3	For Failures */
 | 
						|
-#if defined _POSIX_
 | 
						|
+#if defined IS_POSIX
 | 
						|
 #   define FUNCTION_NAME        0
 | 
						|
 #else
 | 
						|
 #   define FUNCTION_NAME        __FUNCTION__
 | 
						|
diff --git a/TPMCmds.c b/TPMCmds.c
 | 
						|
index 173dcf7..0805575 100644
 | 
						|
--- a/TPMCmds.c
 | 
						|
+++ b/TPMCmds.c
 | 
						|
@@ -110,7 +110,12 @@ Usage(
 | 
						|
 /* This is the main entry point for the simulator. */
 | 
						|
 /* It registers the interface and starts listening for clients */
 | 
						|
 int
 | 
						|
-main(
 | 
						|
+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
 | 
						|
+main
 | 
						|
+#else
 | 
						|
+tpm_server_main
 | 
						|
+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
 | 
						|
+(
 | 
						|
      int              argc,
 | 
						|
      char            *argv[]
 | 
						|
      )
 | 
						|
diff --git a/TcpServerPosix.c b/TcpServerPosix.c
 | 
						|
index be48607..8dfcbea 100644
 | 
						|
--- a/TcpServerPosix.c
 | 
						|
+++ b/TcpServerPosix.c
 | 
						|
@@ -721,9 +721,11 @@ TpmServer(
 | 
						|
 			    memcpy(&CommandResponseSizes.largestResponse,
 | 
						|
 				   &OutputBuffer[6], sizeof(UINT32));
 | 
						|
 			}
 | 
						|
+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
 | 
						|
 		    ok = WriteVarBytes(s,
 | 
						|
 				       (char*) OutBuffer.Buffer,
 | 
						|
 				       OutBuffer.BufferSize);
 | 
						|
+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
 | 
						|
 		    if(!ok)
 | 
						|
 			return TRUE;
 | 
						|
 		    break;
 | 
						|
@@ -737,9 +739,11 @@ TpmServer(
 | 
						|
 			    printf("Unsupported client version (0).\n");
 | 
						|
 			    return TRUE;
 | 
						|
 			}
 | 
						|
+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
 | 
						|
 		    ok &= WriteUINT32(s, ServerVersion);
 | 
						|
 		    ok &= WriteUINT32(s,
 | 
						|
 				      tpmInRawMode | tpmPlatformAvailable | tpmSupportsPP);
 | 
						|
+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
 | 
						|
 		    break;
 | 
						|
 		    
 | 
						|
 		  case TPM_SET_ALTERNATIVE_RESULT:
 | 
						|
@@ -760,7 +764,9 @@ TpmServer(
 | 
						|
 		    printf("Unrecognized TPM interface command %08x\n", Command);
 | 
						|
 		    return TRUE;
 | 
						|
 		}
 | 
						|
+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
 | 
						|
 	    ok = WriteUINT32(s,0);
 | 
						|
+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
 | 
						|
 	    if(!ok)
 | 
						|
 		return TRUE;
 | 
						|
 	}
 | 
						|
diff --git a/makefile b/makefile
 | 
						|
index cc3e410..c10ba5a 100644
 | 
						|
--- a/makefile
 | 
						|
+++ b/makefile
 | 
						|
@@ -40,16 +40,16 @@
 | 
						|
 
 | 
						|
 
 | 
						|
-CC = /usr/bin/gcc
 | 
						|
 
 | 
						|
-CCFLAGS = -Wall  			\
 | 
						|
+CCFLAGS = $(CFLAGS) -Wall  			\
 | 
						|
 	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
 | 
						|
-	-Werror -Wsign-compare \
 | 
						|
+	-Wsign-compare \
 | 
						|
 	 -c -ggdb -O0 			\
 | 
						|
 	-DTPM_POSIX			\
 | 
						|
-	-D_POSIX_			\
 | 
						|
+	-DIS_POSIX			\
 | 
						|
 	-DTPM_NUVOTON			\
 | 
						|
 	-I../utils			\
 | 
						|
-	-I.
 | 
						|
+	-I. \
 | 
						|
+	-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
 | 
						|
 
 | 
						|
 LNFLAGS = -ggdb 			\
 | 
						|
 	-DTPM_POSIX			\
 | 
						|
@@ -57,7 +60,8 @@ LNFLAGS = -ggdb 			\
 | 
						|
 	-lcrypto			\
 | 
						|
 	-lpthread			\
 | 
						|
 	-lrt				\
 | 
						|
-	-I.
 | 
						|
+	-I. \
 | 
						|
+	-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION $(LIB_FUZZING_ENGINE)
 | 
						|
 
 | 
						|
 all:	tpm_server
 | 
						|
 
 | 
						|
@@ -75,9 +79,14 @@ TcpServerPosix.o	: $(HEADERS)
 | 
						|
 tpm_server:	$(OBJFILES)
 | 
						|
 		$(CC) $(OBJFILES) $(LNFLAGS) -o tpm_server
 | 
						|
 
 | 
						|
+fuzz_tpm_server:	$(OBJFILES) fuzzer.o
 | 
						|
+		$(CXX) $(CXXFLAGS) fuzzer.o $(OBJFILES) $(LNFLAGS) -o fuzz_tpm_server
 | 
						|
+
 | 
						|
 clean:		
 | 
						|
-		rm -f *.o tpm_server *~
 | 
						|
+		rm -f *.o tpm_server fuzz_tpm_server *~
 | 
						|
 
 | 
						|
 %.o:		%.c
 | 
						|
 		$(CC) $(CCFLAGS) $< -o $@
 | 
						|
 
 | 
						|
+%.o:		%.cc
 | 
						|
+		$(CXX) $(CXXFLAGS) $(CCFLAGS) $(LIB_FUZZING_ENGINE) $< -o $@
 |