gprs: Use RAND_bytes for p-tmsi

[hfreyther: Link to libcrypto, include header, add uint8_t* cast]
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c
index f40de0b..9b11c35 100644
--- a/openbsc/src/gprs/gprs_sgsn.c
+++ b/openbsc/src/gprs/gprs_sgsn.c
@@ -41,6 +41,8 @@
 
 #include <time.h>
 
+#include <openssl/rand.h>
+
 #define GPRS_LLME_CHECK_TICK 30
 
 extern struct sgsn_instance *sgsn;
@@ -525,7 +527,9 @@
 	int max_retries = 100;
 
 restart:
-	ptmsi = rand();
+	if (RAND_bytes((uint8_t *) &ptmsi, sizeof(ptmsi)) != 1)
+		goto failed;
+
 	/* Enforce that the 2 MSB are set without loosing the distance between
 	 * identical values. Since rand() has no duplicate values within a
 	 * period (because the size of the state is the same like the size of