Giter VIP home page Giter VIP logo

aqtoolkit's People

Contributors

alanquatermain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aqtoolkit's Issues

trouble using AQXMLParser

hi there,

i've added -lxml2 to linker flags and /usr/include/libxml2 to header search paths but i'm still having trouble getting it to work:

Undefined symbols:
"_kCFStreamPropertyHTTPResponseHeader", referenced from:
_kCFStreamPropertyHTTPResponseHeader$non_lazy_ptr in AQXMLParser.o
"_CFHTTPMessageCopyHeaderFieldValue", referenced from:
-[AQXMLParser(Internal) _setupExpectedLength] in AQXMLParser.o
"_kCFStreamPropertyFTPResourceSize", referenced from:
_kCFStreamPropertyFTPResourceSize$non_lazy_ptr in AQXMLParser.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

any ideas of what's wrong?

Handling of input stream error

I am new to Objective C and your streaming XML parser, but I ran into problem when network error occurs. I wanted to know if this is correct:
In AQXMLParser.m at line 963:
_internal->error = [input streamError];

Should this be:
_internal->error = [[input streamError] retain];

When this error occurs, then the parser is released, I get a crash in -dealloc at the line:
[_internal->error release];

with this error message:
-[CFError release]: message sent to deallocated instance

downloaderCompletedTask: never called if completed successfully (includes simple fix)

Just change the _markComplete method in AQLowMemoryDownloadHelper.m as follows:

- (void) _markComplete
{
    self.complete = YES;
    if (self.asyncDelegate != nil) {
        [self.asyncDelegate performSelector:@selector(downloaderCompletedTask:) withObject:self];
    }
}

And voila, it appears to work fine now. (I haven't tried testing multiple downloads at one time, etc., so you may need to experiment. In addition, it seems like downloaderCompletedTask is never called by the existing code, so I'll also want to add this line or another, to indicate failure. ymmv.)

Fix key length function has a bug

if you try decrypting with a 16 byte key it converts the keylength to 24 bytes

the following function should be changed to add <= for 16 and 24 byte comparisons

static void FixKeyLengths( CCAlgorithm algorithm, NSMutableData * keyData, NSMutableData * ivData )
{
NSUInteger keyLength = [keyData length];
switch ( algorithm )
{
case kCCAlgorithmAES128:
{
if ( keyLength <= 16 )
{
[keyData setLength: 16];
}
else if ( keyLength <= 24 )
{
[keyData setLength: 24];
}
else
{
[keyData setLength: 32];
}

        break;

Warnings and Analysis warnings

First of all, great work on aqxmlparser, a real win for my project.
I try to create as clean as code I can and can't stand warnings and analysis warnings.
Sadly aqxmlparser does throw some of them, when I compile I get the following warning and analysis warnings:

Analysis

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1138:9 Incorrect decrement of the reference count of an object is not owned at this point by the caller

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1187:3 Value stored to 'saxHandler' is never read

Warnings

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:115:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:115: warning: 'NSObject' may not respond to '-stream:handleEvent:'

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:115:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:115: warning: (Messages without a matching method signature

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:153:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:153: warning: 'NSObject' may not respond to '-stream:handleEvent:'

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:159:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:159: warning: 'NSObject' may not respond to '-stream:handleEvent:'

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1098:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1098: warning: class 'AQXMLParser' does not implement the 'NSStreamDelegate' protocol

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1228:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1228: warning: incompatible Objective-C types 'struct AQXMLParser *', expected 'struct NSXMLParser *' when passing argument 1 of 'parser:parseErrorOccurred:' from distinct Objective-C type

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1332:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1332: warning: incompatible Objective-C types 'struct AQXMLParser *', expected 'struct NSXMLParser *' when passing argument 1 of 'parser:didStartMappingPrefix:toURI:' from distinct Objective-C type

/Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1354:0 /Users/gerteunis/Documents/NZBVortex/Classes/XML/AQXMLParser.m:1354: warning: incompatible Objective-C types 'struct AQXMLParser *', expected 'struct NSXMLParser *' when passing argument 1 of 'parser:didEndMappingPrefix:' from distinct Objective-C type

Warnings when using LLVM compiler

When using the LLVM 2.0 compiler included with Xcode 4, I get warnings when compiling NSError+CFStreamError.m:

 Weak identifier 'x' never declared

I fixed this by moving the weak symbol definitions below the import statements.

AQGzipInputStream pauses unexpectedly while parsing XML

While running AQXMLParserWithTimeout in a dispatch_async() block, AQGzipInputStream pause on line number 261:

kern_return_t kr = mach_msg( (mach_msg_header_t *) &msg, MACH_SEND_MSG, msg.header.msgh_size, 0, MACH_PORT_NULL, 0, MACH_PORT_NULL );

The stream is never closed, and the parser is waiting for input for an indefinite period

Unchecked Error Condition - security issue

We are using “NSData+CommonCrypto”. We are facing security issue raised By Veracode Scanning Report. Please check the following details for issue provided by Veracode.

Description:
Error handling problems occur when an application does not properly handle errors that occur during processing. If a function does not generate the correct return/status codes, or if the product does not handle all possible return/status codes that could be generated by a function, then security issues may result. Similarly, failing to catch an exception thrown by a function can potentially cause the program to crash or to behave in an unexpected manner.
This type of problem is most often found in edge conditions that are rarely encountered during normal application use. Presumably, most bugs related to common conditions are found and eliminated during development and testing. In some cases, the attacker can directly control or influence the environment to trigger these edge conditions.

Recommendations:
Never ignore return codes, assuming that a function will always succeed. Check for and handle all possible return codes to ensure that all scenarios are covered, including boundary or edge conditions. Subject the application to extensive testing to discover some of the possible instances of where and how errors or return values are not handled.
Use a standard exception handling mechanism to be sure that the application properly handles all types of processing errors. Do not allow the application to throw errors up to the application container, generally the web application server.

Associated Flaws by CWE ID:

Unchecked Error Condition (CWE ID 391)(1 flaw) 
Description :  The result of this call are not captured. Failing to check the return code can result in unexpected behavior. 
Recommendations : Check the function return code for success 
Class - NSData+CommonCrypto.m : Location line number 346

`void * buf = malloc( bufsize );`

kSecAttrAccount not used in -[AQKeychainItem copyQueryDictionary:] ?

Not sure if this is by design or not, but at least I found myself wanting to include the kSecAttrAccount attribute to be included when querying (-[AQKeychainItem queryKeychain]).

So in -[AQKeychainItem copyQueryDictionary: (AQKeychainOptions)] , around AQKeychainItem.m:142,
why not also include kSecAttrAccount in addition to kSecAttrSecurityDomain, kSecAttrPort, kSecAttrPath etc when building the set of attributes used in the query?

Problem parsing XML with encoding "US-ASCII" in AQXMLparser

The parsing seems to keep starting over and over.
Perhaps the US-ASCII isn't detected/used correctly.
"US-ASCII is upwards-compatible with UTF-8 (an US-ASCII string is also a UTF-8 string, see [RFC 3629])"

When I manually change the encoding inside the xml to "utf-8" it seems to work okay.

AQXMLParser random crashes when parsing some xml documents

We had the issue that some of the xml documents which we were parsing caused a crash on iOS 6. The fix is to add the following line to the AQXMLParser line 1141:

p->serror = __errorCallback2;

And adding the following method to the same file:

static void __errorCallback2(void *userData, xmlErrorPtr error) {

}

The main problem was that the serror field is not initialized to any thing valid so the call stack you get when it is crashing is more or less random.
Our crashes were also only happening when we were parsing on a background thread.

AQXMLParser/NSXMLParser delegate call behavior discrepancy

I'm parsing RSS1/2/Atom feeds with AQXMLParser, and I find a discrepancy between the behavior for the delegate call parser:didEndElement:namespaceURI:qualifiedName:. AQXMLParser sends nil for qualifiedName when the element is unqualified, but NSXMLParser sends qualifiedName equal to element name when it is unqualified.

I fixed this for myself pretty naively by returning completeStr for qualifiedName in the AQXMLParser.m line 377 didEndElement delegate call for the prefixStr==nil case.

AES encrypt options

In the AES256EncryptedDataUsingKey method, I can't decryt the data using java when the options is set to kCCOptionPKCS7Padding. But when I modify the options to "kCCOptionPKCS7Padding | kCCOptionECBMode", I can decrypt correctly.
I haven't used the decryptedAES256DataUsingKey method in the iOS client, but I think the options in this method should alos be modified to "kCCOptionPKCS7Padding | kCCOptionECBMode".

StreamingXMLParser: Getting Byte Position on End of Document?

On parserDidEndDocument: is it possible to get the position/byte-offset that the document ended on?

I'm trying to parse several XML documents from the same socket. They are not delimited so in order to parse the next document I need to know where the current document finished parsing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.