OSDN Git Service

fixed on Fedora15
[openpts/openpts.git] / src / fsm.c
index 94918bb..4ce4dcb 100644 (file)
--- a/src/fsm.c
+++ b/src/fsm.c
@@ -371,8 +371,8 @@ int getDigestFlag(char * cond, BYTE **digest, int *digest_size) {
     char * loc;   // loc at value
     char * loc2;  // loc at "base64"
     int len;
-    int rc = 0;
     BYTE *buf;
+    int buf_len;
 
     DEBUG_CAL("getDigestFlag -");
 
@@ -404,7 +404,7 @@ int getDigestFlag(char * cond, BYTE **digest, int *digest_size) {
             return -1;  // end
         }
         if ((loc[0] == '=') && (loc[1] == '=')) {  // ==
-            rc = 1;
+            // operand is ==
         } else {
             ERROR("ERROR 002 [%c%c]  not  == \n", loc[0], loc[1]);
             return -1;  // unknown operand
@@ -431,27 +431,20 @@ int getDigestFlag(char * cond, BYTE **digest, int *digest_size) {
         } else {
             /* Binary Model */
             /* Base64 str -> BYTE[] */
-            buf = (BYTE *) malloc(SHA1_DIGEST_SIZE + 1);
+            buf = decodeBase64(
+                (char *)loc,
+                SHA1_BASE64_DIGEST_SIZE,
+                &buf_len);
             if (buf == NULL) {
-                ERROR("no memory");
-                return -1;
-            }
-
-            // TODO(munetoh) get len, "<"
-            rc = decodeBase64(buf, (unsigned char *)loc, SHA1_BASE64_DIGEST_SIZE);
-            if (rc == SHA1_DIGEST_SIZE) {
-                // TODO(munetoh) digest size change by alg
-                // this code is SHA1 only
-                *digest = buf;
-                *digest_size = rc;
-                return 1;
-            } else {
-                ERROR("getDigestFlag() - decodeBase64() was failed \n");
-                free(buf);
+                ERROR("decodeBase64 fail");
                 *digest = NULL;
                 *digest_size = 0;
                 return -1;
             }
+            *digest = buf;
+            // TODO buf_len >= SHA1_DIGEST_SIZE
+            *digest_size = SHA1_DIGEST_SIZE;
+            return 1;
         }
     }
 }
@@ -743,8 +736,9 @@ int addFsmTransition(
     return PTS_INTERNAL_ERROR;
 }
 
+#if 0
 /**
- * get Event String (malloc)
+ * get Event String (malloc) - obsolete function
  */
 char *getEventString(OPENPTS_PCR_EVENT_WRAPPER *eventWrapper) {
     // int len;
@@ -771,6 +765,7 @@ char *getEventString(OPENPTS_PCR_EVENT_WRAPPER *eventWrapper) {
 
     return buf;
 }
+#endif
 
 /**
  * get counter(int) value from property