char key_internal[KEY_MAX];
size_t key_internal_len;
char buf[PATH_MAX]; // buffer size should be larger than KEY_MAX
+ size_t value_internal_len;
FILE *fp = NULL;
int ret;
char *tag_s;
key_internal_len = strlen(key_internal);
while ((temp = fgets(buf, sizeof(buf), fp))) {
if (!strncmp(buf, key_internal, key_internal_len) && buf[key_internal_len] == ' ') {
- sscanf(buf, "%*s %[^\n]s", value);
+ value_internal_len = strcspn(buf + key_internal_len + 1, "\n") + 1;
+ snprintf(value, len < value_internal_len ? len : value_internal_len,
+ "%s", buf + key_internal_len + 1);
break;
}
}