@@ -643,11 +643,14 @@ /* GCC Optimized replacement */ retval += (retval << 1) + (retval << 4) + (retval << 7) + (retval << 8) + (retval << 24); #endif } - retval += uid; + if (uid >= 0) { + retval += uid; + retval++; + } return(retval); } /* @@ -913,11 +916,10 @@ return(-EIO); } pathinfo->packaged = 0; - pathinfo->inode = appfs_get_path_inode(path, fsuid); appfs_call_libtcl( attr_value_str = Tcl_GetString(attr_value); switch (attr_value_str[0]) { @@ -1012,10 +1014,16 @@ pathinfo->time = appfs_boottime; } Tcl_Release(interp); ) + + if (pathinfo->packaged) { + pathinfo->inode = appfs_get_path_inode(path, -1); + } else { + pathinfo->inode = appfs_get_path_inode(path, fsuid); + } if (retval == 0) { appfs_get_path_info_cache_add(path, fsuid, pathinfo); } else { APPFS_DEBUG("error: Invalid type for \"%s\" from Tcl", path);