diff options
author | ho <> | 2003-04-03 15:12:45 +0000 |
---|---|---|
committer | ho <> | 2003-04-03 15:12:45 +0000 |
commit | 6bb2106b98eb0674d6726bb6917cea8c27ed9d81 (patch) | |
tree | 88a75b48f8926e146a6634e21b828e7345486c8c | |
parent | 030af986882598665482e3f4c559bdfd01f78eca (diff) | |
download | openbsd-6bb2106b98eb0674d6726bb6917cea8c27ed9d81.tar.gz openbsd-6bb2106b98eb0674d6726bb6917cea8c27ed9d81.tar.bz2 openbsd-6bb2106b98eb0674d6726bb6917cea8c27ed9d81.zip |
str{cat,cpy}/sprintf cleanup. markus@, deraadt@ ok
-rw-r--r-- | src/lib/libcrypto/asn1/a_time.c | 10 | ||||
-rw-r--r-- | src/lib/libcrypto/asn1/t_pkey.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/bio/bss_file.c | 10 | ||||
-rw-r--r-- | src/lib/libcrypto/err/err.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/evp_pbe.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/evp_pkey.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/mem_dbg.c | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_lib.c | 14 | ||||
-rw-r--r-- | src/lib/libcrypto/rand/randfile.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/a_time.c | 10 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/t_pkey.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/bio/bss_file.c | 10 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/err/err.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/evp/evp_pbe.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/evp/evp_pkey.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/mem_dbg.c | 12 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/pem/pem_lib.c | 14 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/rand/randfile.c | 2 |
18 files changed, 64 insertions, 52 deletions
diff --git a/src/lib/libcrypto/asn1/a_time.c b/src/lib/libcrypto/asn1/a_time.c index 27ddd30899..f8fdfb5975 100644 --- a/src/lib/libcrypto/asn1/a_time.c +++ b/src/lib/libcrypto/asn1/a_time.c | |||
@@ -125,6 +125,7 @@ ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZE | |||
125 | { | 125 | { |
126 | ASN1_GENERALIZEDTIME *ret; | 126 | ASN1_GENERALIZEDTIME *ret; |
127 | char *str; | 127 | char *str; |
128 | int newlen; | ||
128 | 129 | ||
129 | if (!ASN1_TIME_check(t)) return NULL; | 130 | if (!ASN1_TIME_check(t)) return NULL; |
130 | 131 | ||
@@ -145,14 +146,15 @@ ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZE | |||
145 | } | 146 | } |
146 | 147 | ||
147 | /* grow the string */ | 148 | /* grow the string */ |
148 | if (!ASN1_STRING_set(ret, NULL, t->length + 2)) | 149 | newlen = t->length + 2; |
150 | if (!ASN1_STRING_set(ret, NULL, newlen)) | ||
149 | return NULL; | 151 | return NULL; |
150 | str = (char *)ret->data; | 152 | str = (char *)ret->data; |
151 | /* Work out the century and prepend */ | 153 | /* Work out the century and prepend */ |
152 | if (t->data[0] >= '5') strcpy(str, "19"); | 154 | if (t->data[0] >= '5') strlcpy(str, "19", newlen); |
153 | else strcpy(str, "20"); | 155 | else strlcpy(str, "20", newlen); |
154 | 156 | ||
155 | strcat(str, (char *)t->data); | 157 | strlcat(str, (char *)t->data, newlen); |
156 | 158 | ||
157 | return ret; | 159 | return ret; |
158 | } | 160 | } |
diff --git a/src/lib/libcrypto/asn1/t_pkey.c b/src/lib/libcrypto/asn1/t_pkey.c index 2d46914cb1..b3f8364012 100644 --- a/src/lib/libcrypto/asn1/t_pkey.c +++ b/src/lib/libcrypto/asn1/t_pkey.c | |||
@@ -143,9 +143,9 @@ int RSA_print(BIO *bp, const RSA *x, int off) | |||
143 | } | 143 | } |
144 | 144 | ||
145 | if (x->d == NULL) | 145 | if (x->d == NULL) |
146 | sprintf(str,"Modulus (%d bit):",BN_num_bits(x->n)); | 146 | snprintf(str,sizeof str,"Modulus (%d bit):",BN_num_bits(x->n)); |
147 | else | 147 | else |
148 | strcpy(str,"modulus:"); | 148 | strlcpy(str,"modulus:",sizeof str); |
149 | if (!print(bp,str,x->n,m,off)) goto err; | 149 | if (!print(bp,str,x->n,m,off)) goto err; |
150 | s=(x->d == NULL)?"Exponent:":"publicExponent:"; | 150 | s=(x->d == NULL)?"Exponent:":"publicExponent:"; |
151 | if (!print(bp,s,x->e,m,off)) goto err; | 151 | if (!print(bp,s,x->e,m,off)) goto err; |
diff --git a/src/lib/libcrypto/bio/bss_file.c b/src/lib/libcrypto/bio/bss_file.c index 826b361fa2..18e7bb86e6 100644 --- a/src/lib/libcrypto/bio/bss_file.c +++ b/src/lib/libcrypto/bio/bss_file.c | |||
@@ -232,15 +232,15 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
232 | if (num & BIO_FP_APPEND) | 232 | if (num & BIO_FP_APPEND) |
233 | { | 233 | { |
234 | if (num & BIO_FP_READ) | 234 | if (num & BIO_FP_READ) |
235 | strcpy(p,"a+"); | 235 | strlcpy(p,"a+",sizeof p); |
236 | else strcpy(p,"a"); | 236 | else strlcpy(p,"a",sizeof p); |
237 | } | 237 | } |
238 | else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE)) | 238 | else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE)) |
239 | strcpy(p,"r+"); | 239 | strlcpy(p,"r+",sizeof p); |
240 | else if (num & BIO_FP_WRITE) | 240 | else if (num & BIO_FP_WRITE) |
241 | strcpy(p,"w"); | 241 | strlcpy(p,"w",sizeof p); |
242 | else if (num & BIO_FP_READ) | 242 | else if (num & BIO_FP_READ) |
243 | strcpy(p,"r"); | 243 | strlcpy(p,"r",sizeof p); |
244 | else | 244 | else |
245 | { | 245 | { |
246 | BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE); | 246 | BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE); |
diff --git a/src/lib/libcrypto/err/err.c b/src/lib/libcrypto/err/err.c index 5abe44e6d5..9b532d1f4c 100644 --- a/src/lib/libcrypto/err/err.c +++ b/src/lib/libcrypto/err/err.c | |||
@@ -1023,7 +1023,7 @@ void ERR_add_error_data(int num, ...) | |||
1023 | else | 1023 | else |
1024 | str=p; | 1024 | str=p; |
1025 | } | 1025 | } |
1026 | strcat(str,a); | 1026 | strlcat(str,a,s+1); |
1027 | } | 1027 | } |
1028 | } | 1028 | } |
1029 | ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); | 1029 | ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); |
diff --git a/src/lib/libcrypto/evp/evp_pbe.c b/src/lib/libcrypto/evp/evp_pbe.c index bcd4d29f85..4234cd7684 100644 --- a/src/lib/libcrypto/evp/evp_pbe.c +++ b/src/lib/libcrypto/evp/evp_pbe.c | |||
@@ -87,7 +87,7 @@ int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen, | |||
87 | if (i == -1) { | 87 | if (i == -1) { |
88 | char obj_tmp[80]; | 88 | char obj_tmp[80]; |
89 | EVPerr(EVP_F_EVP_PBE_CIPHERINIT,EVP_R_UNKNOWN_PBE_ALGORITHM); | 89 | EVPerr(EVP_F_EVP_PBE_CIPHERINIT,EVP_R_UNKNOWN_PBE_ALGORITHM); |
90 | if (!pbe_obj) strcpy (obj_tmp, "NULL"); | 90 | if (!pbe_obj) strlcpy (obj_tmp, "NULL", sizeof obj_tmp); |
91 | else i2t_ASN1_OBJECT(obj_tmp, 80, pbe_obj); | 91 | else i2t_ASN1_OBJECT(obj_tmp, 80, pbe_obj); |
92 | ERR_add_error_data(2, "TYPE=", obj_tmp); | 92 | ERR_add_error_data(2, "TYPE=", obj_tmp); |
93 | return 0; | 93 | return 0; |
diff --git a/src/lib/libcrypto/evp/evp_pkey.c b/src/lib/libcrypto/evp/evp_pkey.c index 34b5b1d21c..30b6fbb03d 100644 --- a/src/lib/libcrypto/evp/evp_pkey.c +++ b/src/lib/libcrypto/evp/evp_pkey.c | |||
@@ -210,7 +210,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) | |||
210 | #endif | 210 | #endif |
211 | default: | 211 | default: |
212 | EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM); | 212 | EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM); |
213 | if (!a->algorithm) strcpy (obj_tmp, "NULL"); | 213 | if (!a->algorithm) strlcpy (obj_tmp, "NULL", sizeof obj_tmp); |
214 | else i2t_ASN1_OBJECT(obj_tmp, 80, a->algorithm); | 214 | else i2t_ASN1_OBJECT(obj_tmp, 80, a->algorithm); |
215 | ERR_add_error_data(2, "TYPE=", obj_tmp); | 215 | ERR_add_error_data(2, "TYPE=", obj_tmp); |
216 | EVP_PKEY_free (pkey); | 216 | EVP_PKEY_free (pkey); |
diff --git a/src/lib/libcrypto/mem_dbg.c b/src/lib/libcrypto/mem_dbg.c index 0beb3b36d1..ea94eee6f4 100644 --- a/src/lib/libcrypto/mem_dbg.c +++ b/src/lib/libcrypto/mem_dbg.c | |||
@@ -585,6 +585,8 @@ static void print_leak(const MEM *m, MEM_LEAK *l) | |||
585 | struct tm *lcl = NULL; | 585 | struct tm *lcl = NULL; |
586 | unsigned long ti; | 586 | unsigned long ti; |
587 | 587 | ||
588 | #define BUF_REMAIN (sizeof buf - (size_t)(bufp - buf)) | ||
589 | |||
588 | if(m->addr == (char *)l->bio) | 590 | if(m->addr == (char *)l->bio) |
589 | return; | 591 | return; |
590 | 592 | ||
@@ -592,22 +594,22 @@ static void print_leak(const MEM *m, MEM_LEAK *l) | |||
592 | { | 594 | { |
593 | lcl = localtime(&m->time); | 595 | lcl = localtime(&m->time); |
594 | 596 | ||
595 | sprintf(bufp, "[%02d:%02d:%02d] ", | 597 | snprintf(bufp, BUF_REMAIN, "[%02d:%02d:%02d] ", |
596 | lcl->tm_hour,lcl->tm_min,lcl->tm_sec); | 598 | lcl->tm_hour,lcl->tm_min,lcl->tm_sec); |
597 | bufp += strlen(bufp); | 599 | bufp += strlen(bufp); |
598 | } | 600 | } |
599 | 601 | ||
600 | sprintf(bufp, "%5lu file=%s, line=%d, ", | 602 | snprintf(bufp, BUF_REMAIN, "%5lu file=%s, line=%d, ", |
601 | m->order,m->file,m->line); | 603 | m->order,m->file,m->line); |
602 | bufp += strlen(bufp); | 604 | bufp += strlen(bufp); |
603 | 605 | ||
604 | if (options & V_CRYPTO_MDEBUG_THREAD) | 606 | if (options & V_CRYPTO_MDEBUG_THREAD) |
605 | { | 607 | { |
606 | sprintf(bufp, "thread=%lu, ", m->thread); | 608 | snprintf(bufp, BUF_REMAIN, "thread=%lu, ", m->thread); |
607 | bufp += strlen(bufp); | 609 | bufp += strlen(bufp); |
608 | } | 610 | } |
609 | 611 | ||
610 | sprintf(bufp, "number=%d, address=%08lX\n", | 612 | snprintf(bufp, BUF_REMAIN, "number=%d, address=%08lX\n", |
611 | m->num,(unsigned long)m->addr); | 613 | m->num,(unsigned long)m->addr); |
612 | bufp += strlen(bufp); | 614 | bufp += strlen(bufp); |
613 | 615 | ||
@@ -682,7 +684,7 @@ void CRYPTO_mem_leaks(BIO *b) | |||
682 | (char *)&ml); | 684 | (char *)&ml); |
683 | if (ml.chunks != 0) | 685 | if (ml.chunks != 0) |
684 | { | 686 | { |
685 | sprintf(buf,"%ld bytes leaked in %d chunks\n", | 687 | snprintf(buf,sizeof buf,"%ld bytes leaked in %d chunks\n", |
686 | ml.bytes,ml.chunks); | 688 | ml.bytes,ml.chunks); |
687 | BIO_puts(b,buf); | 689 | BIO_puts(b,buf); |
688 | } | 690 | } |
diff --git a/src/lib/libcrypto/pem/pem_lib.c b/src/lib/libcrypto/pem/pem_lib.c index a8db6ffbf5..50f5733654 100644 --- a/src/lib/libcrypto/pem/pem_lib.c +++ b/src/lib/libcrypto/pem/pem_lib.c | |||
@@ -131,9 +131,9 @@ void PEM_proc_type(char *buf, int type) | |||
131 | else | 131 | else |
132 | str="BAD-TYPE"; | 132 | str="BAD-TYPE"; |
133 | 133 | ||
134 | strcat(buf,"Proc-Type: 4,"); | 134 | strlcat(buf,"Proc-Type: 4,",PEM_BUFSIZE); |
135 | strcat(buf,str); | 135 | strlcat(buf,str,PEM_BUFSIZE); |
136 | strcat(buf,"\n"); | 136 | strlcat(buf,"\n",PEM_BUFSIZE); |
137 | } | 137 | } |
138 | 138 | ||
139 | void PEM_dek_info(char *buf, const char *type, int len, char *str) | 139 | void PEM_dek_info(char *buf, const char *type, int len, char *str) |
@@ -142,10 +142,12 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str) | |||
142 | long i; | 142 | long i; |
143 | int j; | 143 | int j; |
144 | 144 | ||
145 | strcat(buf,"DEK-Info: "); | 145 | strlcat(buf,"DEK-Info: ",PEM_BUFSIZE); |
146 | strcat(buf,type); | 146 | strlcat(buf,type,PEM_BUFSIZE); |
147 | strcat(buf,","); | 147 | strlcat(buf,",",PEM_BUFSIZE); |
148 | j=strlen(buf); | 148 | j=strlen(buf); |
149 | if (j + (len * 2) + 1 > PEM_BUFSIZE) | ||
150 | return; | ||
149 | for (i=0; i<len; i++) | 151 | for (i=0; i<len; i++) |
150 | { | 152 | { |
151 | buf[j+i*2] =map[(str[i]>>4)&0x0f]; | 153 | buf[j+i*2] =map[(str[i]>>4)&0x0f]; |
diff --git a/src/lib/libcrypto/rand/randfile.c b/src/lib/libcrypto/rand/randfile.c index 215c2616eb..311dd27a7b 100644 --- a/src/lib/libcrypto/rand/randfile.c +++ b/src/lib/libcrypto/rand/randfile.c | |||
@@ -242,7 +242,7 @@ const char *RAND_file_name(char *buf, size_t size) | |||
242 | { | 242 | { |
243 | strlcpy(buf,s,size); | 243 | strlcpy(buf,s,size); |
244 | #ifndef OPENSSL_SYS_VMS | 244 | #ifndef OPENSSL_SYS_VMS |
245 | strcat(buf,"/"); | 245 | strlcat(buf,"/",size); |
246 | #endif | 246 | #endif |
247 | strlcat(buf,RFILE,size); | 247 | strlcat(buf,RFILE,size); |
248 | ok = 1; | 248 | ok = 1; |
diff --git a/src/lib/libssl/src/crypto/asn1/a_time.c b/src/lib/libssl/src/crypto/asn1/a_time.c index 27ddd30899..f8fdfb5975 100644 --- a/src/lib/libssl/src/crypto/asn1/a_time.c +++ b/src/lib/libssl/src/crypto/asn1/a_time.c | |||
@@ -125,6 +125,7 @@ ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZE | |||
125 | { | 125 | { |
126 | ASN1_GENERALIZEDTIME *ret; | 126 | ASN1_GENERALIZEDTIME *ret; |
127 | char *str; | 127 | char *str; |
128 | int newlen; | ||
128 | 129 | ||
129 | if (!ASN1_TIME_check(t)) return NULL; | 130 | if (!ASN1_TIME_check(t)) return NULL; |
130 | 131 | ||
@@ -145,14 +146,15 @@ ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZE | |||
145 | } | 146 | } |
146 | 147 | ||
147 | /* grow the string */ | 148 | /* grow the string */ |
148 | if (!ASN1_STRING_set(ret, NULL, t->length + 2)) | 149 | newlen = t->length + 2; |
150 | if (!ASN1_STRING_set(ret, NULL, newlen)) | ||
149 | return NULL; | 151 | return NULL; |
150 | str = (char *)ret->data; | 152 | str = (char *)ret->data; |
151 | /* Work out the century and prepend */ | 153 | /* Work out the century and prepend */ |
152 | if (t->data[0] >= '5') strcpy(str, "19"); | 154 | if (t->data[0] >= '5') strlcpy(str, "19", newlen); |
153 | else strcpy(str, "20"); | 155 | else strlcpy(str, "20", newlen); |
154 | 156 | ||
155 | strcat(str, (char *)t->data); | 157 | strlcat(str, (char *)t->data, newlen); |
156 | 158 | ||
157 | return ret; | 159 | return ret; |
158 | } | 160 | } |
diff --git a/src/lib/libssl/src/crypto/asn1/t_pkey.c b/src/lib/libssl/src/crypto/asn1/t_pkey.c index 2d46914cb1..b3f8364012 100644 --- a/src/lib/libssl/src/crypto/asn1/t_pkey.c +++ b/src/lib/libssl/src/crypto/asn1/t_pkey.c | |||
@@ -143,9 +143,9 @@ int RSA_print(BIO *bp, const RSA *x, int off) | |||
143 | } | 143 | } |
144 | 144 | ||
145 | if (x->d == NULL) | 145 | if (x->d == NULL) |
146 | sprintf(str,"Modulus (%d bit):",BN_num_bits(x->n)); | 146 | snprintf(str,sizeof str,"Modulus (%d bit):",BN_num_bits(x->n)); |
147 | else | 147 | else |
148 | strcpy(str,"modulus:"); | 148 | strlcpy(str,"modulus:",sizeof str); |
149 | if (!print(bp,str,x->n,m,off)) goto err; | 149 | if (!print(bp,str,x->n,m,off)) goto err; |
150 | s=(x->d == NULL)?"Exponent:":"publicExponent:"; | 150 | s=(x->d == NULL)?"Exponent:":"publicExponent:"; |
151 | if (!print(bp,s,x->e,m,off)) goto err; | 151 | if (!print(bp,s,x->e,m,off)) goto err; |
diff --git a/src/lib/libssl/src/crypto/bio/bss_file.c b/src/lib/libssl/src/crypto/bio/bss_file.c index 826b361fa2..18e7bb86e6 100644 --- a/src/lib/libssl/src/crypto/bio/bss_file.c +++ b/src/lib/libssl/src/crypto/bio/bss_file.c | |||
@@ -232,15 +232,15 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
232 | if (num & BIO_FP_APPEND) | 232 | if (num & BIO_FP_APPEND) |
233 | { | 233 | { |
234 | if (num & BIO_FP_READ) | 234 | if (num & BIO_FP_READ) |
235 | strcpy(p,"a+"); | 235 | strlcpy(p,"a+",sizeof p); |
236 | else strcpy(p,"a"); | 236 | else strlcpy(p,"a",sizeof p); |
237 | } | 237 | } |
238 | else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE)) | 238 | else if ((num & BIO_FP_READ) && (num & BIO_FP_WRITE)) |
239 | strcpy(p,"r+"); | 239 | strlcpy(p,"r+",sizeof p); |
240 | else if (num & BIO_FP_WRITE) | 240 | else if (num & BIO_FP_WRITE) |
241 | strcpy(p,"w"); | 241 | strlcpy(p,"w",sizeof p); |
242 | else if (num & BIO_FP_READ) | 242 | else if (num & BIO_FP_READ) |
243 | strcpy(p,"r"); | 243 | strlcpy(p,"r",sizeof p); |
244 | else | 244 | else |
245 | { | 245 | { |
246 | BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE); | 246 | BIOerr(BIO_F_FILE_CTRL,BIO_R_BAD_FOPEN_MODE); |
diff --git a/src/lib/libssl/src/crypto/err/err.c b/src/lib/libssl/src/crypto/err/err.c index 5abe44e6d5..9b532d1f4c 100644 --- a/src/lib/libssl/src/crypto/err/err.c +++ b/src/lib/libssl/src/crypto/err/err.c | |||
@@ -1023,7 +1023,7 @@ void ERR_add_error_data(int num, ...) | |||
1023 | else | 1023 | else |
1024 | str=p; | 1024 | str=p; |
1025 | } | 1025 | } |
1026 | strcat(str,a); | 1026 | strlcat(str,a,s+1); |
1027 | } | 1027 | } |
1028 | } | 1028 | } |
1029 | ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); | 1029 | ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); |
diff --git a/src/lib/libssl/src/crypto/evp/evp_pbe.c b/src/lib/libssl/src/crypto/evp/evp_pbe.c index bcd4d29f85..4234cd7684 100644 --- a/src/lib/libssl/src/crypto/evp/evp_pbe.c +++ b/src/lib/libssl/src/crypto/evp/evp_pbe.c | |||
@@ -87,7 +87,7 @@ int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen, | |||
87 | if (i == -1) { | 87 | if (i == -1) { |
88 | char obj_tmp[80]; | 88 | char obj_tmp[80]; |
89 | EVPerr(EVP_F_EVP_PBE_CIPHERINIT,EVP_R_UNKNOWN_PBE_ALGORITHM); | 89 | EVPerr(EVP_F_EVP_PBE_CIPHERINIT,EVP_R_UNKNOWN_PBE_ALGORITHM); |
90 | if (!pbe_obj) strcpy (obj_tmp, "NULL"); | 90 | if (!pbe_obj) strlcpy (obj_tmp, "NULL", sizeof obj_tmp); |
91 | else i2t_ASN1_OBJECT(obj_tmp, 80, pbe_obj); | 91 | else i2t_ASN1_OBJECT(obj_tmp, 80, pbe_obj); |
92 | ERR_add_error_data(2, "TYPE=", obj_tmp); | 92 | ERR_add_error_data(2, "TYPE=", obj_tmp); |
93 | return 0; | 93 | return 0; |
diff --git a/src/lib/libssl/src/crypto/evp/evp_pkey.c b/src/lib/libssl/src/crypto/evp/evp_pkey.c index 34b5b1d21c..30b6fbb03d 100644 --- a/src/lib/libssl/src/crypto/evp/evp_pkey.c +++ b/src/lib/libssl/src/crypto/evp/evp_pkey.c | |||
@@ -210,7 +210,7 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) | |||
210 | #endif | 210 | #endif |
211 | default: | 211 | default: |
212 | EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM); | 212 | EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM); |
213 | if (!a->algorithm) strcpy (obj_tmp, "NULL"); | 213 | if (!a->algorithm) strlcpy (obj_tmp, "NULL", sizeof obj_tmp); |
214 | else i2t_ASN1_OBJECT(obj_tmp, 80, a->algorithm); | 214 | else i2t_ASN1_OBJECT(obj_tmp, 80, a->algorithm); |
215 | ERR_add_error_data(2, "TYPE=", obj_tmp); | 215 | ERR_add_error_data(2, "TYPE=", obj_tmp); |
216 | EVP_PKEY_free (pkey); | 216 | EVP_PKEY_free (pkey); |
diff --git a/src/lib/libssl/src/crypto/mem_dbg.c b/src/lib/libssl/src/crypto/mem_dbg.c index 0beb3b36d1..ea94eee6f4 100644 --- a/src/lib/libssl/src/crypto/mem_dbg.c +++ b/src/lib/libssl/src/crypto/mem_dbg.c | |||
@@ -585,6 +585,8 @@ static void print_leak(const MEM *m, MEM_LEAK *l) | |||
585 | struct tm *lcl = NULL; | 585 | struct tm *lcl = NULL; |
586 | unsigned long ti; | 586 | unsigned long ti; |
587 | 587 | ||
588 | #define BUF_REMAIN (sizeof buf - (size_t)(bufp - buf)) | ||
589 | |||
588 | if(m->addr == (char *)l->bio) | 590 | if(m->addr == (char *)l->bio) |
589 | return; | 591 | return; |
590 | 592 | ||
@@ -592,22 +594,22 @@ static void print_leak(const MEM *m, MEM_LEAK *l) | |||
592 | { | 594 | { |
593 | lcl = localtime(&m->time); | 595 | lcl = localtime(&m->time); |
594 | 596 | ||
595 | sprintf(bufp, "[%02d:%02d:%02d] ", | 597 | snprintf(bufp, BUF_REMAIN, "[%02d:%02d:%02d] ", |
596 | lcl->tm_hour,lcl->tm_min,lcl->tm_sec); | 598 | lcl->tm_hour,lcl->tm_min,lcl->tm_sec); |
597 | bufp += strlen(bufp); | 599 | bufp += strlen(bufp); |
598 | } | 600 | } |
599 | 601 | ||
600 | sprintf(bufp, "%5lu file=%s, line=%d, ", | 602 | snprintf(bufp, BUF_REMAIN, "%5lu file=%s, line=%d, ", |
601 | m->order,m->file,m->line); | 603 | m->order,m->file,m->line); |
602 | bufp += strlen(bufp); | 604 | bufp += strlen(bufp); |
603 | 605 | ||
604 | if (options & V_CRYPTO_MDEBUG_THREAD) | 606 | if (options & V_CRYPTO_MDEBUG_THREAD) |
605 | { | 607 | { |
606 | sprintf(bufp, "thread=%lu, ", m->thread); | 608 | snprintf(bufp, BUF_REMAIN, "thread=%lu, ", m->thread); |
607 | bufp += strlen(bufp); | 609 | bufp += strlen(bufp); |
608 | } | 610 | } |
609 | 611 | ||
610 | sprintf(bufp, "number=%d, address=%08lX\n", | 612 | snprintf(bufp, BUF_REMAIN, "number=%d, address=%08lX\n", |
611 | m->num,(unsigned long)m->addr); | 613 | m->num,(unsigned long)m->addr); |
612 | bufp += strlen(bufp); | 614 | bufp += strlen(bufp); |
613 | 615 | ||
@@ -682,7 +684,7 @@ void CRYPTO_mem_leaks(BIO *b) | |||
682 | (char *)&ml); | 684 | (char *)&ml); |
683 | if (ml.chunks != 0) | 685 | if (ml.chunks != 0) |
684 | { | 686 | { |
685 | sprintf(buf,"%ld bytes leaked in %d chunks\n", | 687 | snprintf(buf,sizeof buf,"%ld bytes leaked in %d chunks\n", |
686 | ml.bytes,ml.chunks); | 688 | ml.bytes,ml.chunks); |
687 | BIO_puts(b,buf); | 689 | BIO_puts(b,buf); |
688 | } | 690 | } |
diff --git a/src/lib/libssl/src/crypto/pem/pem_lib.c b/src/lib/libssl/src/crypto/pem/pem_lib.c index a8db6ffbf5..50f5733654 100644 --- a/src/lib/libssl/src/crypto/pem/pem_lib.c +++ b/src/lib/libssl/src/crypto/pem/pem_lib.c | |||
@@ -131,9 +131,9 @@ void PEM_proc_type(char *buf, int type) | |||
131 | else | 131 | else |
132 | str="BAD-TYPE"; | 132 | str="BAD-TYPE"; |
133 | 133 | ||
134 | strcat(buf,"Proc-Type: 4,"); | 134 | strlcat(buf,"Proc-Type: 4,",PEM_BUFSIZE); |
135 | strcat(buf,str); | 135 | strlcat(buf,str,PEM_BUFSIZE); |
136 | strcat(buf,"\n"); | 136 | strlcat(buf,"\n",PEM_BUFSIZE); |
137 | } | 137 | } |
138 | 138 | ||
139 | void PEM_dek_info(char *buf, const char *type, int len, char *str) | 139 | void PEM_dek_info(char *buf, const char *type, int len, char *str) |
@@ -142,10 +142,12 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str) | |||
142 | long i; | 142 | long i; |
143 | int j; | 143 | int j; |
144 | 144 | ||
145 | strcat(buf,"DEK-Info: "); | 145 | strlcat(buf,"DEK-Info: ",PEM_BUFSIZE); |
146 | strcat(buf,type); | 146 | strlcat(buf,type,PEM_BUFSIZE); |
147 | strcat(buf,","); | 147 | strlcat(buf,",",PEM_BUFSIZE); |
148 | j=strlen(buf); | 148 | j=strlen(buf); |
149 | if (j + (len * 2) + 1 > PEM_BUFSIZE) | ||
150 | return; | ||
149 | for (i=0; i<len; i++) | 151 | for (i=0; i<len; i++) |
150 | { | 152 | { |
151 | buf[j+i*2] =map[(str[i]>>4)&0x0f]; | 153 | buf[j+i*2] =map[(str[i]>>4)&0x0f]; |
diff --git a/src/lib/libssl/src/crypto/rand/randfile.c b/src/lib/libssl/src/crypto/rand/randfile.c index 215c2616eb..311dd27a7b 100644 --- a/src/lib/libssl/src/crypto/rand/randfile.c +++ b/src/lib/libssl/src/crypto/rand/randfile.c | |||
@@ -242,7 +242,7 @@ const char *RAND_file_name(char *buf, size_t size) | |||
242 | { | 242 | { |
243 | strlcpy(buf,s,size); | 243 | strlcpy(buf,s,size); |
244 | #ifndef OPENSSL_SYS_VMS | 244 | #ifndef OPENSSL_SYS_VMS |
245 | strcat(buf,"/"); | 245 | strlcat(buf,"/",size); |
246 | #endif | 246 | #endif |
247 | strlcat(buf,RFILE,size); | 247 | strlcat(buf,RFILE,size); |
248 | ok = 1; | 248 | ok = 1; |