| 263 | */ |
| 264 | |
| 265 | const char * /* O - Value or NULL */ |
| 266 | cgiGetTextfield(const char *name) /* I - Name of form field */ |
| 267 | { |
| 268 | _cgi_var_t *var = cgi_find_variable(name); |
| 269 | /* Found variable */ |
| 270 | const char *value = var ? var->values[var->nvalues - 1] : NULL; |
| 271 | |
| 272 | |
| 273 | if (value && strchr(value, '\"') != NULL) |
| 274 | { |
| 275 | /* |
| 276 | * Delete the invalid text field value... |
| 277 | */ |
| 278 | |
| 279 | int i = var - form_vars, j; |
| 280 | |
| 281 | form_count --; |
| 282 | |
| 283 | for (j = 0; j < var->nvalues; j ++) |
| 284 | free(var->values[j]); |
| 285 | free(var->name); |
| 286 | free(var->values); |
| 287 | |
| 288 | if (i < form_count) |
| 289 | memmove(var, var + 1, (size_t)(form_count - i) * sizeof(_cgi_var_t)); |
| 290 | |
| 291 | value = NULL; |
| 292 | } |
| 293 | |
| 294 | return (value ? strdup(value) : NULL); |
| 295 | } |
| 296 | |
| 297 | |
| 298 | /* |
no test coverage detected