static int __convert_to_absolute_path(pm_tool_args *data)
{
- char abs[PATH_MAX] = {'\0'};
+ char *abs;
char *temp;
- char *ptr = NULL;
int ret;
GList *list;
- ptr = realpath(data->pkg_path, abs);
- if (ptr == NULL) {
+ abs = realpath(data->pkg_path, NULL);
+ if (abs == NULL) {
printf("realpath fail: %d\n", errno);
return -1;
}
ret = snprintf(data->pkg_path, PATH_MAX - 1, "%s", abs);
+ free(abs);
if (ret < 0 || ret > PATH_MAX - 1) {
printf("snprintf fail\n");
return -1;
}
for (list = data->pkgs; list; list = list->next) {
- ptr = realpath(list->data, abs);
- if (ptr == NULL) {
- printf("realpath fail: %d\n", errno);
- return -1;
- }
temp = list->data;
- list->data = strdup(abs);
+ list->data = realpath(list->data, NULL);
if (list->data == NULL) {
printf("out of memory\n");
return -1;