9ccdfb
diff -up ./esc/src/app/daemon/manifest.mn.fix27 ./esc/src/app/daemon/manifest.mn
9ccdfb
--- ./esc/src/app/daemon/manifest.mn.fix27	2016-06-27 18:02:11.863677684 -0700
9ccdfb
+++ ./esc/src/app/daemon/manifest.mn	2016-06-27 18:02:30.416677684 -0700
9ccdfb
@@ -32,7 +32,7 @@ endif
9ccdfb
 
9ccdfb
 DEFINES         +=  -I$(SYS_INC)/nspr4 -I$(SYS_INC)/nss3  -I$(SYS_INC)/$(MOZ_OFFSET)/nspr -I$(SYS_INC)/$(MOZ_OFFSET)/nss
9ccdfb
 
9ccdfb
-DEFINES += $(shell pkg-config --cflags xft)
9ccdfb
+DEFINES += $(shell pkg-config --cflags xft) -fstack-protector-strong
9ccdfb
 
9ccdfb
 CPPFLAGS		+= $(DEFINES) -g
9ccdfb
 
9ccdfb
diff -up ./esc/src/app/xpcom/Makefile.sdk.fix27 ./esc/src/app/xpcom/Makefile.sdk
9ccdfb
--- ./esc/src/app/xpcom/Makefile.sdk.fix27	2016-06-27 18:03:07.239677684 -0700
9ccdfb
+++ ./esc/src/app/xpcom/Makefile.sdk	2016-06-27 18:03:52.117677684 -0700
9ccdfb
@@ -112,7 +112,7 @@ endif
9ccdfb
 ifeq ($(OS_ARCH),Linux)
9ccdfb
 CPPFLAGS += -g -fno-rtti \
9ccdfb
                 -DXPCOM_GLUE_USE_NSPR -fno-exceptions \
9ccdfb
-                -fshort-wchar -fPIC -std=gnu++0x  
9ccdfb
+                -fshort-wchar -fPIC -std=gnu++0x -fstack-protector-strong
9ccdfb
 GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib  -lnssutil3 -lnss3 -lcrmf -lssl3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -L$(GECKO_SDK_PATH)/lib -lxpcomglue_s
9ccdfb
 endif
9ccdfb
 
9ccdfb
diff -up ./esc/src/app/xpcom/tray/Makefile.sdk.fix27 ./esc/src/app/xpcom/tray/Makefile.sdk
9ccdfb
--- ./esc/src/app/xpcom/tray/Makefile.sdk.fix27	2016-06-27 18:04:06.166677684 -0700
9ccdfb
+++ ./esc/src/app/xpcom/tray/Makefile.sdk	2016-06-27 18:04:28.840677684 -0700
9ccdfb
@@ -110,7 +110,7 @@ endif
9ccdfb
 CXX   = c++ 
9ccdfb
 CPPFLAGS +=     -fno-rtti   \
9ccdfb
 		-fno-exceptions \
9ccdfb
-		-fshort-wchar -DXPCOM_GLUE_USE_NSPR=1
9ccdfb
+		-fshort-wchar -DXPCOM_GLUE_USE_NSPR=1 -fstack-protector-strong
9ccdfb
 
9ccdfb
 ifeq ($(OS_ARCH),WINNT)
9ccdfb
 CPPFLAGS = -MD  -DXP_WIN=1 -DXP_WIN32=1 -DXPCOM_GLUE -DXPCOM_GLUE_USE_NSPR -TP -nologo -W3 -Gy -EHsc -DNDEBUG
9ccdfb
diff -up ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix27 ./esc/src/lib/coolkey/CoolKeyHandler.cpp
9ccdfb
--- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix27	2016-06-28 15:05:39.031677684 -0700
9ccdfb
+++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp	2016-06-28 16:49:44.830201737 -0700
9ccdfb
@@ -2174,9 +2174,19 @@ CKHGetCoolKeyInfo(PK11SlotInfo *aSlot)
9ccdfb
 
9ccdfb
     // Give the CAC card some sort of unique key ID
9ccdfb
 
9ccdfb
-    if(strlen(info->mCUID) == 0)
9ccdfb
+    //There is a bug in coolkey where it returns the CUID of some previous
9ccdfb
+    // token's cuid , instead of something unique, thus lets use the label.
9ccdfb
+
9ccdfb
+    if(strlen(info->mCUID) == 0 || !isACOOLKey)
9ccdfb
     {
9ccdfb
-        strncpy(info->mCUID,(char *)tokenInfo.label,35);
9ccdfb
+        memset((void *) info->mCUID,0,35);
9ccdfb
+        int max = 0;
9ccdfb
+        if(sizeof(tokenInfo.label) < 34) {
9ccdfb
+            max = sizeof(tokenInfo.label);
9ccdfb
+        } else {
9ccdfb
+            max = 34;
9ccdfb
+        } 
9ccdfb
+        strncpy(info->mCUID,(char *)tokenInfo.label,max);
9ccdfb
         info->mCUID[34] = 0;
9ccdfb
         isACOOLKey = 0;
9ccdfb
     }
9ccdfb
diff -up ./esc/src/lib/coolkey/manifest.mn.fix27 ./esc/src/lib/coolkey/manifest.mn
9ccdfb
--- ./esc/src/lib/coolkey/manifest.mn.fix27	2016-06-27 17:54:18.221677684 -0700
9ccdfb
+++ ./esc/src/lib/coolkey/manifest.mn	2016-06-27 18:00:13.817677684 -0700
9ccdfb
@@ -26,7 +26,7 @@ REQUIRES	= httpchunked nss nspr ckyapple
9ccdfb
 ifndef MOZ_OFFSET
9ccdfb
 MOZ_OFFSET	= mozilla-1.7.13
9ccdfb
 endif
9ccdfb
-DEFINES		+= -I$(CORE_DEPTH)/esc/app/xpcom -I$(SYS_INC)/nspr4 -I$(SYS_INC)/nss3 -I$(SYS_INC)/PCSC  -I$(SYS_INC)/$(MOZ_OFFSET)/nspr -I$(SYS_INC)/$(MOZ_OFFSET)/nss -I$(XULRUNNER_BASE)/dist/public/nss -I$(XULRUNNER_BASE)/dist/include/nspr -I$(GECKO_SDK_PATH)/include/nspr -I$(GECKO_SDK_PATH)/include/nss -fno-strict-aliasing
9ccdfb
+DEFINES		+= -I$(CORE_DEPTH)/esc/app/xpcom -I$(SYS_INC)/nspr4 -I$(SYS_INC)/nss3 -I$(SYS_INC)/PCSC  -I$(SYS_INC)/$(MOZ_OFFSET)/nspr -I$(SYS_INC)/$(MOZ_OFFSET)/nss -I$(XULRUNNER_BASE)/dist/public/nss -I$(XULRUNNER_BASE)/dist/include/nspr -I$(GECKO_SDK_PATH)/include/nspr -I$(GECKO_SDK_PATH)/include/nss -fno-strict-aliasing -fstack-protector-strong
9ccdfb
 MAPFILE 	= $(OBJDIR)/ckymanager.def
9ccdfb
 
9ccdfb
 #EXTRA_LIBS	+= -L$(DIST)/lib -lckyapplet
9ccdfb
diff -up ./esc/src/lib/notifytray/manifest.mn.fix27 ./esc/src/lib/notifytray/manifest.mn
9ccdfb
--- ./esc/src/lib/notifytray/manifest.mn.fix27	2016-06-27 18:00:24.566677684 -0700
9ccdfb
+++ ./esc/src/lib/notifytray/manifest.mn	2016-06-27 18:01:03.809677684 -0700
9ccdfb
@@ -17,7 +17,7 @@
9ccdfb
 
9ccdfb
 CORE_DEPTH	= ../../..
9ccdfb
 
9ccdfb
-DEFINES += $(shell pkg-config --cflags gtk+-2.0)
9ccdfb
+DEFINES += $(shell pkg-config --cflags gtk+-2.0) -fstack-protector-strong
9ccdfb
 CCFLAGS += $(shell pkg-config --libs gtk+-2.0) 
9ccdfb
 CCFLAGS += $(shell pkg-config --cflags glib-2.0)
9ccdfb
 
9ccdfb
diff -up ./esc/src/lib/NssHttpClient/manifest.mn.fix27 ./esc/src/lib/NssHttpClient/manifest.mn
9ccdfb
--- ./esc/src/lib/NssHttpClient/manifest.mn.fix27	2016-06-27 18:01:15.521677684 -0700
9ccdfb
+++ ./esc/src/lib/NssHttpClient/manifest.mn	2016-06-27 18:01:34.320677684 -0700
9ccdfb
@@ -31,7 +31,7 @@ endif
9ccdfb
 
9ccdfb
 
9ccdfb
 MAPFILE		= $(OBJDIR)/httpchunked.def
9ccdfb
-DEFINES		= -I$(SYS_INC)/nspr4 -I$(SYS_INC)/nss3 -I$(SYS_INC)/$(MOZ_OFFSET)/nspr -I$(SYS_INC)/$(MOZ_OFFSET)/nss -I$(XULRUNNER_BASE)/dist/public/nss -I$(XULRUNNER_BASE)/dist/include/nspr -I$(GECKO_SDK_PATH)/include/nspr -I$(GECKO_SDK_PATH)/include/nss
9ccdfb
+DEFINES		= -I$(SYS_INC)/nspr4 -I$(SYS_INC)/nss3 -I$(SYS_INC)/$(MOZ_OFFSET)/nspr -I$(SYS_INC)/$(MOZ_OFFSET)/nss -I$(XULRUNNER_BASE)/dist/public/nss -I$(XULRUNNER_BASE)/dist/include/nspr -I$(GECKO_SDK_PATH)/include/nspr -I$(GECKO_SDK_PATH)/include/nss -fstack-protector-strong
9ccdfb
 
9ccdfb
 CPPSRCS		= \
9ccdfb
 		Cache.cpp \