You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
3.4 KiB
135 lines
3.4 KiB
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 $@
|