Hi Evan, please see my response in line.
Thank you, Jan On 03/31/09 01:23, Evan Layton wrote: > jan damborsky wrote: >> ai_utils.c >> ---------- >> 52 - since ssize_t is not a pointer, I might recommend to >> return 0 instead of NULL in case of failure. >> >> 61-62 - is this check valid ? Looking at the scf_limit man page, >> it is not specified that 0 is invalid value. > > Yes this is a valid check. If scf_limit fails it -1 which is waht > we're checking for. However the comment is incorrect and should state > that if scf_limit fails we return MAXPATHLEN. Is it safe to return MAXPATHLEN in case of failure ? Is it assured that buffer overflow can't happen e.g. on lines 293, 501 ? I think that if scf_limit() fails, something is really broken and it might be safer not to proceed further. > > >> >> 171 - It seems that return code doesn't reflect the >> failure, since it was checked on 168 that property >> group exists > > you're right the return code is incorrect. I added "AI_PG_DELETE_ERR, > /* Failed to delete PG */" in the header file and this now returns > that error. Thank you. > >> >> >> 417 if ((ret = ai_end_transaction(handle)) != AI_SUCCESS) { >> -> >> 417 return (ai_end_transaction(handle)); > > I added another function that needs to be called here in case the call > to end_transaction fails. This fucntion (ai_abort_tranaction) will > clean things up if there is a transaction failure. For more on this > see my response to Sundar's comments. ok. > >> >> >> 464, 465, 499, 566, 595 >> - how is it handled, if scf_limit() fails in ai_get_scf_limit() ? > > I don't understand what you mean here. In each instance we'll have > MAXPATHLEN as the value in vallen and we'll use that for getting the > value. I am sorry for the confusion - please see my comments above about scf_limit() failure.