summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbeck <>2014-04-17 20:03:03 +0000
committerbeck <>2014-04-17 20:03:03 +0000
commite4ad3db9d37454b5bdd0cf5825f5225e0fd77914 (patch)
tree5a918e269d0e0c004cc01facbdae84a947373bb6 /src
parenta7d459976bae37484f615794c37c7ac9cbc2c20f (diff)
downloadopenbsd-e4ad3db9d37454b5bdd0cf5825f5225e0fd77914.tar.gz
openbsd-e4ad3db9d37454b5bdd0cf5825f5225e0fd77914.tar.bz2
openbsd-e4ad3db9d37454b5bdd0cf5825f5225e0fd77914.zip
fix BIO_snprintf usage in here.
ok tedu@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/engine/eng_ctrl.c27
-rw-r--r--src/lib/libssl/src/crypto/engine/eng_ctrl.c27
2 files changed, 38 insertions, 16 deletions
diff --git a/src/lib/libcrypto/engine/eng_ctrl.c b/src/lib/libcrypto/engine/eng_ctrl.c
index 5ce25d92ec..d5017e2329 100644
--- a/src/lib/libcrypto/engine/eng_ctrl.c
+++ b/src/lib/libcrypto/engine/eng_ctrl.c
@@ -104,6 +104,7 @@ static int int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,
104 void (*f)(void)) 104 void (*f)(void))
105 { 105 {
106 int idx; 106 int idx;
107 int ret;
107 char *s = (char *)p; 108 char *s = (char *)p;
108 /* Take care of the easy one first (eg. it requires no searches) */ 109 /* Take care of the easy one first (eg. it requires no searches) */
109 if(cmd == ENGINE_CTRL_GET_FIRST_CMD_TYPE) 110 if(cmd == ENGINE_CTRL_GET_FIRST_CMD_TYPE)
@@ -158,19 +159,29 @@ static int int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,
158 case ENGINE_CTRL_GET_NAME_LEN_FROM_CMD: 159 case ENGINE_CTRL_GET_NAME_LEN_FROM_CMD:
159 return strlen(e->cmd_defns[idx].cmd_name); 160 return strlen(e->cmd_defns[idx].cmd_name);
160 case ENGINE_CTRL_GET_NAME_FROM_CMD: 161 case ENGINE_CTRL_GET_NAME_FROM_CMD:
161 return BIO_snprintf(s,strlen(e->cmd_defns[idx].cmd_name) + 1, 162 ret = snprintf(s,strlen(e->cmd_defns[idx].cmd_name) + 1,
162 "%s", e->cmd_defns[idx].cmd_name); 163 "%s", e->cmd_defns[idx].cmd_name);
164 if (ret >= (strlen(e->cmd_defns[idx].cmd_name) + 1))
165 ret = -1;
166 return ret;
163 case ENGINE_CTRL_GET_DESC_LEN_FROM_CMD: 167 case ENGINE_CTRL_GET_DESC_LEN_FROM_CMD:
164 if(e->cmd_defns[idx].cmd_desc) 168 if(e->cmd_defns[idx].cmd_desc)
165 return strlen(e->cmd_defns[idx].cmd_desc); 169 return strlen(e->cmd_defns[idx].cmd_desc);
166 return strlen(int_no_description); 170 return strlen(int_no_description);
167 case ENGINE_CTRL_GET_DESC_FROM_CMD: 171 case ENGINE_CTRL_GET_DESC_FROM_CMD:
168 if(e->cmd_defns[idx].cmd_desc) 172 if(e->cmd_defns[idx].cmd_desc) {
169 return BIO_snprintf(s, 173 ret = snprintf(s,
170 strlen(e->cmd_defns[idx].cmd_desc) + 1, 174 strlen(e->cmd_defns[idx].cmd_desc) + 1,
171 "%s", e->cmd_defns[idx].cmd_desc); 175 "%s", e->cmd_defns[idx].cmd_desc);
172 return BIO_snprintf(s, strlen(int_no_description) + 1,"%s", 176 if (ret >= strlen(e->cmd_defns[idx].cmd_desc) + 1)
173 int_no_description); 177 ret = -1;
178 return ret;
179 }
180 ret = snprintf(s, strlen(int_no_description) + 1,"%s",
181 int_no_description);
182 if (ret >= strlen(int_no_description) + 1)
183 ret = -1;
184 return ret;
174 case ENGINE_CTRL_GET_CMD_FLAGS: 185 case ENGINE_CTRL_GET_CMD_FLAGS:
175 return e->cmd_defns[idx].cmd_flags; 186 return e->cmd_defns[idx].cmd_flags;
176 } 187 }
diff --git a/src/lib/libssl/src/crypto/engine/eng_ctrl.c b/src/lib/libssl/src/crypto/engine/eng_ctrl.c
index 5ce25d92ec..d5017e2329 100644
--- a/src/lib/libssl/src/crypto/engine/eng_ctrl.c
+++ b/src/lib/libssl/src/crypto/engine/eng_ctrl.c
@@ -104,6 +104,7 @@ static int int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,
104 void (*f)(void)) 104 void (*f)(void))
105 { 105 {
106 int idx; 106 int idx;
107 int ret;
107 char *s = (char *)p; 108 char *s = (char *)p;
108 /* Take care of the easy one first (eg. it requires no searches) */ 109 /* Take care of the easy one first (eg. it requires no searches) */
109 if(cmd == ENGINE_CTRL_GET_FIRST_CMD_TYPE) 110 if(cmd == ENGINE_CTRL_GET_FIRST_CMD_TYPE)
@@ -158,19 +159,29 @@ static int int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,
158 case ENGINE_CTRL_GET_NAME_LEN_FROM_CMD: 159 case ENGINE_CTRL_GET_NAME_LEN_FROM_CMD:
159 return strlen(e->cmd_defns[idx].cmd_name); 160 return strlen(e->cmd_defns[idx].cmd_name);
160 case ENGINE_CTRL_GET_NAME_FROM_CMD: 161 case ENGINE_CTRL_GET_NAME_FROM_CMD:
161 return BIO_snprintf(s,strlen(e->cmd_defns[idx].cmd_name) + 1, 162 ret = snprintf(s,strlen(e->cmd_defns[idx].cmd_name) + 1,
162 "%s", e->cmd_defns[idx].cmd_name); 163 "%s", e->cmd_defns[idx].cmd_name);
164 if (ret >= (strlen(e->cmd_defns[idx].cmd_name) + 1))
165 ret = -1;
166 return ret;
163 case ENGINE_CTRL_GET_DESC_LEN_FROM_CMD: 167 case ENGINE_CTRL_GET_DESC_LEN_FROM_CMD:
164 if(e->cmd_defns[idx].cmd_desc) 168 if(e->cmd_defns[idx].cmd_desc)
165 return strlen(e->cmd_defns[idx].cmd_desc); 169 return strlen(e->cmd_defns[idx].cmd_desc);
166 return strlen(int_no_description); 170 return strlen(int_no_description);
167 case ENGINE_CTRL_GET_DESC_FROM_CMD: 171 case ENGINE_CTRL_GET_DESC_FROM_CMD:
168 if(e->cmd_defns[idx].cmd_desc) 172 if(e->cmd_defns[idx].cmd_desc) {
169 return BIO_snprintf(s, 173 ret = snprintf(s,
170 strlen(e->cmd_defns[idx].cmd_desc) + 1, 174 strlen(e->cmd_defns[idx].cmd_desc) + 1,
171 "%s", e->cmd_defns[idx].cmd_desc); 175 "%s", e->cmd_defns[idx].cmd_desc);
172 return BIO_snprintf(s, strlen(int_no_description) + 1,"%s", 176 if (ret >= strlen(e->cmd_defns[idx].cmd_desc) + 1)
173 int_no_description); 177 ret = -1;
178 return ret;
179 }
180 ret = snprintf(s, strlen(int_no_description) + 1,"%s",
181 int_no_description);
182 if (ret >= strlen(int_no_description) + 1)
183 ret = -1;
184 return ret;
174 case ENGINE_CTRL_GET_CMD_FLAGS: 185 case ENGINE_CTRL_GET_CMD_FLAGS:
175 return e->cmd_defns[idx].cmd_flags; 186 return e->cmd_defns[idx].cmd_flags;
176 } 187 }