return ARCHIVE_EOF;
*extra_data_size -= target_size + 1;
- if(!read_ahead(a, target_size, &p))
- return ARCHIVE_EOF;
-
if(target_size > (MAX_NAME_IN_CHARS - 1)) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
"Link target is too long");
return ARCHIVE_FATAL;
}
+ if(!read_ahead(a, target_size, &p))
+ return ARCHIVE_EOF;
+
memcpy(target_utf8_buf, p, target_size);
target_utf8_buf[target_size] = 0;
if(!read_var_sized(a, &name_size, NULL))
return ARCHIVE_EOF;
- if(!read_ahead(a, name_size, &p))
- return ARCHIVE_EOF;
-
if(name_size > (MAX_NAME_IN_CHARS - 1)) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
"Filename is too long");
return ARCHIVE_FATAL;
}
+ if(!read_ahead(a, name_size, &p))
+ return ARCHIVE_EOF;
+
memcpy(name_utf8_buf, p, name_size);
name_utf8_buf[name_size] = 0;
if(ARCHIVE_OK != consume(a, name_size)) {