On Sat, 2009-01-24 at 16:47 +1100, Paul Wankadia wrote:
> modules/replicated.c:
> 303 static int add_host(struct host **list, struct host *host)
> ...
> 307 if (!list) {
> 308 *list = host;
> 309 return 1;
> 310 }
>
> That is a NULL pointer dereference.
Oops!
>
>
> lib/alarm.c:
> 223 int alarm_start_handler(void)
> ...
> 230 status = pthread_attr_init(pattrs);
> ...
> 240 status = pthread_create(&thid, pattrs, alarm_handler,
> NULL);
> 241 if (status)
> 242 return 0;
> 243
> 244 return 1;
>
> Should you call pthread_attr_destroy(3) before returning?
Yes, missed that as it used to use a global attributes.
>
>
> lib/defaults.c:
> 544 struct ldap_searchdn *defaults_get_searchdns(void)
> ...
> 566 if (!new) {
> 567 defaults_free_searchdns(sdn);
> 568 return NULL;
> 569 }
>
> That is a resource leak. (`f' is not closed.)
>
>
> modules/mount_changer.c:
> 142 int swapCD(const char *device, const char *slotName)
> ...
> 161 if (total_slots_available <= 1) {
> 162 logerr(MODPREFIX
> 163 "Device %s is not an ATAPI compliant CD
> changer.",
> 164 device);
> 165 return 1;
> 166 }
> ...
> 170 if (slot < 0) {
> 171 logerr(MODPREFIX "CDROM_SELECT_DISC failed");
> 172 return 1;
> 173 }
>
> Those are resource leaks. (`fd' is not closed.)
Great, obvious catches.
>
>
> daemon/state.c:
> 1124 int st_start_handler(void)
> ...
> 1131 status = pthread_attr_init(pattrs);
> ...
> 1141 status = pthread_create(&thid, pattrs,
> st_queue_handler, NULL);
> 1142 if (status)
> 1143 return 0;
> 1144
> 1145 return 1;
>
> Should you call pthread_attr_destroy(3) before returning?
Yes, also missed that as it used to use a global attributes.
Ian
_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs