_cleanup_fclose_ FILE *f = NULL;
int ret;
char * t;
+ struct stat stat_buf;
assert(path);
assert(str);
- t = realpath(path, NULL);
- ret_value_errno_msg_if(!t, -errno,
- "Fail to get realpath %s", path);
- free(t);
+ if (stat(path, &stat_buf) == 0) {
+ t = realpath(path, NULL);
+ ret_value_errno_msg_if(!t, -errno,
+ "Fail to get realpath %s", path);
+ free(t);
+ }
f = fopen(path, "w");
ret_value_errno_msg_if(!f, -errno,