[launchd-changes] [23307] trunk/launchd/src/libvproc.c
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jul 12 13:05:48 PDT 2007
Revision: 23307
http://trac.macosforge.org/projects/launchd/changeset/23307
Author: zarzycki at apple.com
Date: 2007-07-12 13:05:47 -0700 (Thu, 12 Jul 2007)
Log Message:
-----------
<rdar://problem/5328938> 9A491: syslogd crashed 12 times in _vprocmgr_log_drain
Modified Paths:
--------------
trunk/launchd/src/libvproc.c
Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c 2007-07-11 23:16:02 UTC (rev 23306)
+++ trunk/launchd/src/libvproc.c 2007-07-12 20:05:47 UTC (rev 23307)
@@ -395,7 +395,7 @@
vproc_err_t
_vprocmgr_log_drain(vproc_t vp __attribute__((unused)), pthread_mutex_t *mutex, _vprocmgr_log_drain_callback_t func)
{
- mach_msg_type_number_t outdata_cnt;
+ mach_msg_type_number_t outdata_cnt, tmp_cnt;
vm_offset_t outdata = 0;
struct logmsg_s *lm;
@@ -407,17 +407,22 @@
return _vprocmgr_log_drain;
}
+ tmp_cnt = outdata_cnt;
+
if (mutex) {
pthread_mutex_lock(mutex);
}
- for (lm = (struct logmsg_s *)outdata; lm->obj_sz; lm = ((void *)lm + lm->obj_sz)) {
+ for (lm = (struct logmsg_s *)outdata; tmp_cnt > 0; lm = ((void *)lm + lm->obj_sz)) {
lm->from_name += (size_t)lm;
lm->about_name += (size_t)lm;
lm->msg += (size_t)lm;
lm->session_name += (size_t)lm;
- func(&lm->when, lm->from_pid, lm->about_pid, lm->sender_uid, lm->sender_gid, lm->pri, lm->from_name, lm->about_name, lm->session_name, lm->msg);
+ func(&lm->when, lm->from_pid, lm->about_pid, lm->sender_uid, lm->sender_gid, lm->pri,
+ lm->from_name, lm->about_name, lm->session_name, lm->msg);
+
+ tmp_cnt -= lm->obj_sz;
}
if (mutex) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070712/f84d7f8e/attachment.html
More information about the launchd-changes
mailing list