remove usage of strtok_r so it builds on windows again
This commit is contained in:
+9
-5
@@ -1119,7 +1119,6 @@ static X509_NAME *parse_name(char *name) {
|
|||||||
X509_NAME *parsed = NULL;
|
X509_NAME *parsed = NULL;
|
||||||
char *ptr = name;
|
char *ptr = name;
|
||||||
char *part;
|
char *part;
|
||||||
char *saveptr = NULL;
|
|
||||||
if(*name != '/') {
|
if(*name != '/') {
|
||||||
fprintf(stderr, "Name does not start with '/'!\n");
|
fprintf(stderr, "Name does not start with '/'!\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -1129,18 +1128,23 @@ static X509_NAME *parse_name(char *name) {
|
|||||||
fprintf(stderr, "Failed to allocate memory\n");
|
fprintf(stderr, "Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
while((part = strtok_r(ptr, "/", &saveptr))) {
|
while((part = strtok(ptr, "/"))) {
|
||||||
char *key;
|
char *key;
|
||||||
char *value;
|
char *value;
|
||||||
char *innersave = NULL;
|
char *equals = strchr(part, '=');
|
||||||
|
if(!equals) {
|
||||||
|
fprintf(stderr, "The part '%s' doesn't seem to contain a =.\n", part);
|
||||||
|
goto parse_err;
|
||||||
|
}
|
||||||
|
*equals++ = '\0';
|
||||||
|
value = equals;
|
||||||
|
key = part;
|
||||||
|
|
||||||
ptr = NULL;
|
ptr = NULL;
|
||||||
key = strtok_r(part, "=", &innersave);
|
|
||||||
if(!key) {
|
if(!key) {
|
||||||
fprintf(stderr, "Malformed name (%s)\n", part);
|
fprintf(stderr, "Malformed name (%s)\n", part);
|
||||||
goto parse_err;
|
goto parse_err;
|
||||||
}
|
}
|
||||||
value = strtok_r(NULL, "=", &innersave);
|
|
||||||
if(!value) {
|
if(!value) {
|
||||||
fprintf(stderr, "Malformed name (%s)\n", part);
|
fprintf(stderr, "Malformed name (%s)\n", part);
|
||||||
goto parse_err;
|
goto parse_err;
|
||||||
|
|||||||
Reference in New Issue
Block a user