From: Tobias Brunner Date: Wed, 9 Apr 2014 15:47:32 +0000 (+0200) Subject: pts: Make sure the complete AIK blob has been read X-Git-Tag: 5.1.3~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0923ff37764a31dbcb8cb0e58fcaa5cbb35152c;p=thirdparty%2Fstrongswan.git pts: Make sure the complete AIK blob has been read --- diff --git a/src/libpts/pts/pts.c b/src/libpts/pts/pts.c index 8699282f06..3ab9b92e68 100644 --- a/src/libpts/pts/pts.c +++ b/src/libpts/pts/pts.c @@ -393,7 +393,7 @@ static void load_aik_blob(private_pts_t *this) fseek(fp, 0L, SEEK_SET); this->aik_blob = chunk_alloc(aikBlobLen); - if (fread(this->aik_blob.ptr, 1, aikBlobLen, fp)) + if (fread(this->aik_blob.ptr, 1, aikBlobLen, fp) == aikBlobLen) { DBG2(DBG_PTS, "loaded AIK Blob from '%s'", blob_path); DBG3(DBG_PTS, "AIK Blob: %B", &this->aik_blob); @@ -401,6 +401,7 @@ static void load_aik_blob(private_pts_t *this) else { DBG1(DBG_PTS, "unable to read AIK Blob file '%s'", blob_path); + chunk_free(&this->aik_blob); } fclose(fp); return;