Bill Garrison avatar Bill Garrison committed d982ba7

Sorted out potential memory leak issues flagged by clang.

Comments (0)

Files changed (1)

NSURL+SOExtendedAttributes.m

         }
         
         /* No names? Bail now with empty list. */
-        if (bufferSize == 0) return attributeNames;
+        if (bufferSize == 0)
+        {
+            if (namesBuffer) free(namesBuffer);
+            return attributeNames;
+        }
         
         /* Problemo? Bail now with the POSIX error. */
         if (bufferSize == -1)
         {
+            if (namesBuffer) free(namesBuffer);
+
             attributeNames = nil;
             if (outError) *outError = SOPOSIXErrorForURL(self);
             return nil;
     return YES;
 }
 
-#pragma mark -
-#pragma mark Individual Attributes
+#pragma mark - Individual Attributes
 
 - (BOOL) hasExtendedAttributeWithName:(NSString *)name
 {
         if (dataSize == -1)
         {
             if (outError) *outError = SOPOSIXErrorForURL(self);
+            if (buffer) {
+                free(buffer); buffer = NULL;
+            }
             
         } else {
             
             NSData *data = [NSData dataWithBytesNoCopy:buffer length:dataSize freeWhenDone:YES];
             retrievedValue = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:outError];
         }
+        
+
     }
     
     return retrievedValue;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.