diff options
| author | beck <> | 2014-04-17 20:03:03 +0000 |
|---|---|---|
| committer | beck <> | 2014-04-17 20:03:03 +0000 |
| commit | ef4d5b072fe1708187d31afa11252b9c959a794e (patch) | |
| tree | 5a918e269d0e0c004cc01facbdae84a947373bb6 /src/lib/libc | |
| parent | b69dffc365b938bf499c7e3ffcc988cdaa107e3b (diff) | |
| download | openbsd-ef4d5b072fe1708187d31afa11252b9c959a794e.tar.gz openbsd-ef4d5b072fe1708187d31afa11252b9c959a794e.tar.bz2 openbsd-ef4d5b072fe1708187d31afa11252b9c959a794e.zip | |
fix BIO_snprintf usage in here.
ok tedu@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/engine/eng_ctrl.c | 27 |
1 files changed, 19 insertions, 8 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 | } |
