Use /dev/udp instead of /dev/ip on Solaris.
[tinc] / src / sptps.c
index 7bd271b..a1fd5e7 100644 (file)
@@ -204,7 +204,7 @@ static bool generate_key_material(sptps_t *s, const char *shared, size_t len) {
 
        // Create the HMAC seed, which is "key expansion" + session label + server nonce + client nonce
        char seed[s->labellen + 64 + 13];
-       strcpy(seed, "key expansion");
+       memcpy(seed, "key expansion", 13);
        if(s->initiator) {
                memcpy(seed + 13, s->mykex + 1, 32);
                memcpy(seed + 45, s->hiskex + 1, 32);
@@ -547,8 +547,6 @@ size_t sptps_receive_data(sptps_t *s, const void *data, size_t len) {
        memcpy(s->inbuf + s->buflen, data, toread);
        total_read += toread;
        s->buflen += toread;
-       len -= toread;
-       data += toread;
 
        // If we don't have a whole record, exit.
        if(s->buflen < s->reclen + (s->instate ? 19UL : 3UL))