#include "MDSAttrUtils.h"
#include "MDSDictionary.h"
#include <security_utilities/logging.h>
+#include <security_utilities/cfutilities.h>
#include <Security/mds_schema.h>
namespace Security
void MDSAttrParser::parseAttrs(CFStringRef subdir)
{
/* get all *.mdsinfo files */
- CFArrayRef bundleInfoFiles = CFBundleCopyResourceURLsOfType(mBundle,
+ CFRef<CFArrayRef> bundleInfoFiles = CFBundleCopyResourceURLsOfType(mBundle,
CFSTR(MDS_INFO_TYPE),
subdir);
- if(bundleInfoFiles == NULL) {
+ if(!bundleInfoFiles) {
Syslog::alert("MDSAttrParser: no mdsattr files for %s", mPath);
return;
}
}
// @@@ Workaround for 4234967: skip any filename beginning with "._"
- CFStringRef lastComponent = CFURLCopyLastPathComponent(infoUrl);
+ CFRef<CFStringRef> lastComponent = CFURLCopyLastPathComponent(infoUrl);
if (lastComponent) {
CFStringRef resFilePfx = CFSTR("._");
// setting the search length and location like this permits,
range,
0/*options*/,
NULL/*returned substr*/);
- CFRelease(lastComponent);
if (skip == true) {
Syslog::warning("MDSAttrParser: ignoring resource file");
continue;
parseFile(infoUrl, subdir);
} /* for each mdsinfo */
- CF_RELEASE(bundleInfoFiles);
}
void MDSAttrParser::parseFile(CFURLRef infoUrl, CFStringRef subdir)
mdsDict->lookupAttributes(&CSPCapabilitiesDict1RelInfo, outAttrs,
numTopLevelAttrs);
- bool fetchedFromDisk = false;
-
/* obtain Capabilities array */
- CFArrayRef capArray = (CFArrayRef)mdsDict->lookupWithIndirect("Capabilities",
+ CFRef<CFArrayRef> capArray = (CFArrayRef)mdsDict->lookupWithIndirect("Capabilities",
mBundle,
- CFArrayGetTypeID(),
- fetchedFromDisk);
- if(capArray == NULL) {
+ CFArrayGetTypeID());
+ if(!capArray) {
/* well we did not get very far.... */
MPDebug("parseCspCapabilitiesRecord: no (or bad) Capabilities");
delete [] outAttrs;
MDSFreeDbRecordAttrs(outAttrs, numTopLevelAttrs);
delete [] outAttrs;
- if(fetchedFromDisk) {
- CF_RELEASE(capArray);
- }
}
/*