365 |
365 |
366 /* Filenames in tars are always forced to be lowercase */ |
366 /* Filenames in tars are always forced to be lowercase */ |
367 strcpy(resolved_name, filename); |
367 strcpy(resolved_name, filename); |
368 strtolower(resolved_name); |
368 strtolower(resolved_name); |
369 |
369 |
370 uint resolved_len = strlen(resolved_name); |
370 size_t resolved_len = strlen(resolved_name); |
371 |
371 |
372 /* Resolve ONE directory link */ |
372 /* Resolve ONE directory link */ |
373 for (TarLinkList::iterator link = _tar_linklist.begin(); link != _tar_linklist.end(); link++) { |
373 for (TarLinkList::iterator link = _tar_linklist.begin(); link != _tar_linklist.end(); link++) { |
374 const std::string &src = link->first; |
374 const std::string &src = link->first; |
375 uint len = src.length(); |
375 size_t len = src.length(); |
376 if (resolved_len >= len && resolved_name[len - 1] == PATHSEPCHAR && strncmp(src.c_str(), resolved_name, len) == 0) { |
376 if (resolved_len >= len && resolved_name[len - 1] == PATHSEPCHAR && strncmp(src.c_str(), resolved_name, len) == 0) { |
377 /* Apply link */ |
377 /* Apply link */ |
378 char resolved_name2[MAX_RESOLVED_LENGTH]; |
378 char resolved_name2[MAX_RESOLVED_LENGTH]; |
379 const std::string &dest = link->second; |
379 const std::string &dest = link->second; |
380 strcpy(resolved_name2, &(resolved_name[len])); |
380 strcpy(resolved_name2, &(resolved_name[len])); |