Skip to content

Commit

Permalink
Fix: crash while building FSTree for a non-existent folder
Browse files Browse the repository at this point in the history
  • Loading branch information
andreyvit committed Feb 4, 2012
1 parent 34e3703 commit ecb9b7c
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions LiveReload/Classes/Monitoring/FSTree.m
Expand Up @@ -26,7 +26,7 @@ static BOOL IsBrokenFolder(NSString *path) {
AliasHandle itemAlias;
HFSUniStr255 targetName;
HFSUniStr255 volumeName;
CFStringRef pathString;
CFStringRef pathString = NULL;
FSAliasInfoBitmap returnedInInfo;
FSAliasInfo info;

Expand All @@ -38,18 +38,21 @@ static BOOL IsBrokenFolder(NSString *path) {
if (strstr(path_buf, "_!LR_BROKEN!_"))
return YES; // for testing

realpath(path_buf, real_path_buf);
if (0 != strcmp(path_buf, real_path_buf)) {
return YES;
if (realpath(path_buf, real_path_buf)) {
if (0 != strcmp(path_buf, real_path_buf)) {
return YES;
}
}

FSPathMakeRefWithOptions((unsigned char *)path_buf, kFSPathMakeRefDoNotFollowLeafSymlink, &fsref, NULL);
FSNewAlias(NULL, &fsref, &itemAlias);
FSCopyAliasInfo(itemAlias, &targetName, &volumeName, &pathString, &returnedInInfo, &info);
CFStringGetCString(pathString, real_path_buf, sizeof(real_path_buf), kCFStringEncodingUTF8);
CFRelease(pathString);
if (0 != strcmp(path_buf, real_path_buf)) {
return YES;
if (pathString) {
CFStringGetCString(pathString, real_path_buf, sizeof(real_path_buf), kCFStringEncodingUTF8);
CFRelease(pathString);
if (0 != strcmp(path_buf, real_path_buf)) {
return YES;
}
}

return NO;
Expand Down

0 comments on commit ecb9b7c

Please sign in to comment.