Description of problem: <service autostart="1" domain="gfsnfs" name="NFS"> <nfsexport ref="gfs_nfs_export"> <clusterfs ref="gfs"/> <ip ref="10.10.1.31"> <nfsclient ref="kraid"/> <nfsclient ref="bowser"/> </ip> </nfsexport> </service> The above configuration snippet tries to evaluate <nfsexport> for a file system. Now, ordinarily, the nfsexport resource inherits the path from the parent file system. However, because the parent is actually a service resource, there is no path to inherit. When we execute this code: val = attr_value(node, res->r_attrs[x].ra_name); /* Strlen of both + '=' + 'OCF_RESKEY' + '\0' terminator' */ n = strlen(res->r_attrs[x].ra_name) + strlen(val) + 2 + strlen(OCF_RES_PREFIX); attr_value tries to find the inheritance for the attribute, correctly returning NULL if none is available. However, the next call to strlen() raises a segfault is val is NULL. Thus, the correct code should be: val = attr_value(node, res->r_attrs[x].ra_name); if (!val) continue; Version-Release number of selected component (if applicable): Current stable, CVS. How reproducible: ? Actual results: rgmanager segfaults and freezes. Expected results: *no* configuration should cause rgmanager to segfault.
Created attachment 116615 [details] Fixes behavior This patch fixes the behavior.
Patches in upstream CVS
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2005-738.html