[prev in list] [next in list] [prev in thread] [next in thread] 

List:       trousers-cvs
Subject:    [Trousers-scm] [GIT] Trousers master branch updated. edd51ef6dbedc79e49ecb4b0c6933bda6964ef50
From:       "Rajiv Andrade" <phreakz () users ! sourceforge ! net>
Date:       2012-01-18 14:06:57
Message-ID: E1RnWAI-000718-EG () sfs-ml-4 ! v29 ! ch3 ! sourceforge ! com
[Download RAW message or body]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Trousers".

The branch, next has been updated
       via  edd51ef6dbedc79e49ecb4b0c6933bda6964ef50 (commit)
      from  ae0c2f8c1fd7a96ba0191f83b6057f8cbc51e786 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://trousers.git.sourceforge.net/git/gitweb.cgi?p=trousers/trousers;a=commitdiff;h=edd51ef6dbedc79e49ecb4b0c6933bda6964ef50


commit edd51ef6dbedc79e49ecb4b0c6933bda6964ef50
Author: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Date:   Wed Jan 18 12:03:41 2012 -0200

    Improved blob handling functions
    
    Reported-by: Andy Lutomirski <luto@users.sourceforge.net>
    Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>

diff --git a/src/trspi/trousers.c b/src/trspi/trousers.c
index 5a8dada..04156a5 100644
--- a/src/trspi/trousers.c
+++ b/src/trspi/trousers.c
@@ -28,7 +28,7 @@
 #include "capabilities.h"
 #include "tsplog.h"
 #include "obj.h"
-
+#include "tcs_tsp.h"
 
 void
 Trspi_UnloadBlob_NONCE(UINT64 *offset, BYTE *blob, TPM_NONCE *n)
@@ -103,6 +103,10 @@ Trspi_LoadBlob(UINT64 *offset, size_t size, BYTE *to, BYTE \
*from)  {
 	if (size == 0)
 		return;
+
+	if ((*offset + size) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (to)
 		memcpy(&to[(*offset)], from, size);
 	(*offset) += size;
@@ -113,6 +117,10 @@ Trspi_UnloadBlob(UINT64 *offset, size_t size, BYTE *from, BYTE \
*to)  {
 	if (size <= 0)
 		return;
+
+	if ((*offset + size) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (to)
 		memcpy(to, &from[*offset], size);
 	(*offset) += size;
@@ -121,6 +129,9 @@ Trspi_UnloadBlob(UINT64 *offset, size_t size, BYTE *from, BYTE \
*to)  void
 Trspi_LoadBlob_BYTE(UINT64 *offset, BYTE data, BYTE *blob)
 {
+	if ((*offset + sizeof(BYTE)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (blob)
 		blob[*offset] = data;
 	(*offset)++;
@@ -129,6 +140,9 @@ Trspi_LoadBlob_BYTE(UINT64 *offset, BYTE data, BYTE *blob)
 void
 Trspi_UnloadBlob_BYTE(UINT64 *offset, BYTE *dataOut, BYTE *blob)
 {
+	if ((*offset + sizeof(BYTE)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (dataOut)
 		*dataOut = blob[*offset];
 	(*offset)++;
@@ -153,6 +167,9 @@ Trspi_UnloadBlob_BOOL(UINT64 *offset, TSS_BOOL *dataOut, BYTE \
*blob)  void
 Trspi_LoadBlob_UINT64(UINT64 *offset, UINT64 in, BYTE *blob)
 {
+	if ((*offset + sizeof(UINT64)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (blob)
 		UINT64ToArray(in, &blob[*offset]);
 	(*offset) += sizeof(UINT64);
@@ -161,6 +178,9 @@ Trspi_LoadBlob_UINT64(UINT64 *offset, UINT64 in, BYTE *blob)
 void
 Trspi_LoadBlob_UINT32(UINT64 *offset, UINT32 in, BYTE *blob)
 {
+	if ((*offset + sizeof(UINT32)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (blob)
 		UINT32ToArray(in, &blob[*offset]);
 	(*offset) += sizeof(UINT32);
@@ -169,6 +189,9 @@ Trspi_LoadBlob_UINT32(UINT64 *offset, UINT32 in, BYTE *blob)
 void
 Trspi_LoadBlob_UINT16(UINT64 *offset, UINT16 in, BYTE *blob)
 {
+	if ((*offset + sizeof(UINT16)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (blob)
 		UINT16ToArray(in, &blob[*offset]);
 	(*offset) += sizeof(UINT16);
@@ -177,6 +200,9 @@ Trspi_LoadBlob_UINT16(UINT64 *offset, UINT16 in, BYTE *blob)
 void
 Trspi_UnloadBlob_UINT64(UINT64 *offset, UINT64 *out, BYTE *blob)
 {
+	if ((*offset + sizeof(UINT64)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (out)
 		*out = Decode_UINT64(&blob[*offset]);
 	(*offset) += sizeof(UINT64);
@@ -185,6 +211,9 @@ Trspi_UnloadBlob_UINT64(UINT64 *offset, UINT64 *out, BYTE *blob)
 void
 Trspi_UnloadBlob_UINT32(UINT64 *offset, UINT32 *out, BYTE *blob)
 {
+	if ((*offset + sizeof(UINT32)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (out)
 		*out = Decode_UINT32(&blob[*offset]);
 	(*offset) += sizeof(UINT32);
@@ -193,6 +222,9 @@ Trspi_UnloadBlob_UINT32(UINT64 *offset, UINT32 *out, BYTE *blob)
 void
 Trspi_UnloadBlob_UINT16(UINT64 *offset, UINT16 *out, BYTE *blob)
 {
+	if ((*offset + sizeof(UINT16)) > TSS_TPM_TXBLOB_SIZE)
+		return;
+
 	if (out)
 		*out = Decode_UINT16(&blob[*offset]);
 	(*offset) += sizeof(UINT16);

-----------------------------------------------------------------------

Summary of changes:
 src/trspi/trousers.c |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
Trousers

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Trousers-cvs mailing list
Trousers-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/trousers-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic