diff options
Diffstat (limited to 'src/lib/libcrypto/pem/pem_lib.c')
-rw-r--r-- | src/lib/libcrypto/pem/pem_lib.c | 14 |
1 files changed, 8 insertions, 6 deletions
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]; |