コード例 #1
0
int xdr_counted_string( FILE *fptr, char **p)
{
  int32_t length, rlength;

  if( !xdr_int32_t( fptr, &length) )
    return 0;
  if( !length)
    {
      *p = (char *) malloc( sizeof(char) );
      (*p)[0] = '\0';
      return 1;
    }

  if( !xdr_int32_t( fptr, &length) )
    return 0;

  // round length up to multiple of 4, how data is stored
  rlength = length + ( (length%4) == 0 ? 0 : 4 - (length%4) );

  *p = (char *) malloc( (length + 1) * sizeof(char) );
  if( fread( *p, 1, length, fptr) != length)
    {
      free( *p);
      return 0;
    }
  (*p)[length] = '\0'; /* Null termination using string length */
  
  if( rlength > length)
    if( fseek( fptr, rlength-length, SEEK_CUR) )
      return 0;

  return 1;
}
コード例 #2
0
ファイル: sfs_2_xdr.c プロジェクト: richwolski/bluesky
static bool_t
xdr_timeval(
    XDR *		xdrs,
    nfstime *		timeval_ptr)
{
    return(xdr_int32_t(xdrs, (int32_t *) &timeval_ptr->seconds) &&
	   xdr_int32_t(xdrs, (int32_t *) &timeval_ptr->useconds));
}
コード例 #3
0
ファイル: xdr-nfs3.c プロジェクト: Byreddys/glusterfs
bool_t
xdr_int32 (XDR *xdrs, int32 *objp)
{
	 if (!xdr_int32_t (xdrs, objp))
		 return FALSE;
	return TRUE;
}
コード例 #4
0
ファイル: fmd_adm.c プロジェクト: metricinc/illumos-gate
/*
 * Custom XDR routine for our API structure fmd_stat_t.  This function must
 * match the definition of fmd_stat_t in <fm/fmd_api.h> and must also match
 * the corresponding routine in usr/src/cmd/fm/fmd/common/fmd_rpc_adm.c.
 */
bool_t
xdr_fmd_stat(XDR *xp, fmd_stat_t *sp)
{
	bool_t rv = TRUE;

	rv &= xdr_opaque(xp, sp->fmds_name, sizeof (sp->fmds_name));
	rv &= xdr_u_int(xp, &sp->fmds_type);
	rv &= xdr_opaque(xp, sp->fmds_desc, sizeof (sp->fmds_desc));

	switch (sp->fmds_type) {
	case FMD_TYPE_BOOL:
		rv &= xdr_int(xp, &sp->fmds_value.bool);
		break;
	case FMD_TYPE_INT32:
		rv &= xdr_int32_t(xp, &sp->fmds_value.i32);
		break;
	case FMD_TYPE_UINT32:
		rv &= xdr_uint32_t(xp, &sp->fmds_value.ui32);
		break;
	case FMD_TYPE_INT64:
		rv &= xdr_int64_t(xp, &sp->fmds_value.i64);
		break;
	case FMD_TYPE_UINT64:
	case FMD_TYPE_TIME:
	case FMD_TYPE_SIZE:
		rv &= xdr_uint64_t(xp, &sp->fmds_value.ui64);
		break;
	case FMD_TYPE_STRING:
		rv &= xdr_string(xp, &sp->fmds_value.str, ~0);
		break;
	}

	return (rv);
}
コード例 #5
0
ファイル: opencdm_xdr_xdr.c プロジェクト: MrTomasz/linaro-cdm
bool_t
xdr_rpc_request_mediaengine_data (XDR *xdrs, rpc_request_mediaengine_data *objp)
{

	 if (!xdr_array (xdrs, (char **)&objp->session_id.session_id_val, (u_int *) &objp->session_id.session_id_len, ~0,
		sizeof (char), (xdrproc_t) xdr_char))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->auth_data.auth_data_val, (u_int *) &objp->auth_data.auth_data_len, ~0,
		sizeof (uint8_t), (xdrproc_t) xdr_uint8_t))
		 return FALSE;
	 if (!xdr_int32_t (xdrs, &objp->id_exchange_shmem))
		 return FALSE;
	 if (!xdr_int32_t (xdrs, &objp->id_exchange_sem))
		 return FALSE;
	return TRUE;
}
コード例 #6
0
ファイル: smb_xdr.c プロジェクト: bahamas10/openzfs
/*
 * XDR encode/decode for smb_netuserinfo_t.
 */
bool_t
smb_netuserinfo_xdr(XDR *xdrs, smb_netuserinfo_t *objp)
{
	if (!xdr_uint64_t(xdrs, &objp->ui_session_id))
		return (FALSE);
	if (!xdr_uint16_t(xdrs, &objp->ui_smb_uid))
		return (FALSE);
	if (!xdr_uint16_t(xdrs, &objp->ui_domain_len))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->ui_domain, ~0))
		return (FALSE);
	if (!xdr_uint16_t(xdrs, &objp->ui_account_len))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->ui_account, ~0))
		return (FALSE);
	if (!xdr_uint32_t(xdrs, &objp->ui_posix_uid))
		return (FALSE);
	if (!xdr_uint16_t(xdrs, &objp->ui_workstation_len))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->ui_workstation, ~0))
		return (FALSE);
	if (!smb_inaddr_xdr(xdrs, &objp->ui_ipaddr))
		return (FALSE);
	if (!xdr_int32_t(xdrs, &objp->ui_native_os))
		return (FALSE);
	if (!xdr_int64_t(xdrs, &objp->ui_logon_time))
		return (FALSE);
	if (!xdr_uint32_t(xdrs, &objp->ui_numopens))
		return (FALSE);
	if (!xdr_uint32_t(xdrs, &objp->ui_flags))
		return (FALSE);
	return (TRUE);
}
コード例 #7
0
ファイル: nfs3xdr.c プロジェクト: fadingred/kfs
bool_t
xdr_int32(XDR *xdrs, int32 *objp)
{

	if (!xdr_int32_t(xdrs, objp))
		return (FALSE);
	return (TRUE);
}
コード例 #8
0
ファイル: iprop_xdr.c プロジェクト: PADL/krb5
bool_t
xdr_kdbe_key_t (XDR *xdrs, kdbe_key_t *objp)
{
    int32_t *buf;

    if (!xdr_int32_t (xdrs, &objp->k_ver))
        return FALSE;
    if (!xdr_int32_t (xdrs, &objp->k_kvno))
        return FALSE;
    if (!xdr_array (xdrs, (char **)&objp->k_enctype.k_enctype_val, (u_int *) &objp->k_enctype.k_enctype_len, ~0,
                    sizeof (int32_t), (xdrproc_t) xdr_int32_t))
        return FALSE;
    if (!xdr_array (xdrs, (char **)&objp->k_contents.k_contents_val, (u_int *) &objp->k_contents.k_contents_len, ~0,
                    sizeof (utf8str_t), (xdrproc_t) xdr_utf8str_t))
        return FALSE;
    return TRUE;
}
コード例 #9
0
bool_t
xdr_nlm4_notify(XDR *xdrs, nlm4_notify *objp)
{

	if (!xdr_string(xdrs, &objp->name, MAXNAMELEN))
		return (FALSE);
	if (!xdr_int32_t(xdrs, &objp->state))
		return (FALSE);
	return (TRUE);
}
コード例 #10
0
ファイル: iprop_xdr.c プロジェクト: PADL/krb5
bool_t
xdr_kdbe_data_t (XDR *xdrs, kdbe_data_t *objp)
{
    int32_t *buf;

    if (!xdr_int32_t (xdrs, &objp->k_magic))
        return FALSE;
    if (!xdr_utf8str_t (xdrs, &objp->k_data))
        return FALSE;
    return TRUE;
}
コード例 #11
0
ファイル: xdr_nlm4.c プロジェクト: alangenfeld/cloud-nfs
bool_t xdr_nlm4_shareres(XDR * xdrs, nlm4_shareres * objp)
{
  register int32_t *buf;

  if(!xdr_netobj(xdrs, &objp->cookie))
    return FALSE;
  if(!xdr_nlm4_stats(xdrs, &objp->stat))
    return FALSE;
  if(!xdr_int32_t(xdrs, &objp->sequence))
    return FALSE;
  return TRUE;
}
コード例 #12
0
ファイル: xdr_nlm4.c プロジェクト: alangenfeld/cloud-nfs
bool_t xdr_nlm4_sm_notifyargs(XDR * xdrs, nlm4_sm_notifyargs * objp)
{
  register int32_t *buf;

  int i;
  if(!xdr_string(xdrs, &objp->name, SM_MAXSTRLEN))
    return FALSE;
  if(!xdr_int32_t(xdrs, &objp->state))
    return FALSE;
  if(!xdr_opaque(xdrs, objp->priv, SM_PRIV_SZ))
    return FALSE;
  return TRUE;
}
コード例 #13
0
ファイル: iprop_xdr.c プロジェクト: PADL/krb5
bool_t
xdr_kdbe_princ_t (XDR *xdrs, kdbe_princ_t *objp)
{
    int32_t *buf;

    if (!xdr_utf8str_t (xdrs, &objp->k_realm))
        return FALSE;
    if (!xdr_array (xdrs, (char **)&objp->k_components.k_components_val, (u_int *) &objp->k_components.k_components_len, ~0,
                    sizeof (kdbe_data_t), (xdrproc_t) xdr_kdbe_data_t))
        return FALSE;
    if (!xdr_int32_t (xdrs, &objp->k_nametype))
        return FALSE;
    return TRUE;
}
コード例 #14
0
ファイル: smb_xdr.c プロジェクト: bahamas10/openzfs
bool_t
smb_inaddr_xdr(XDR *xdrs, smb_inaddr_t *objp)
{
	if (!xdr_int32_t(xdrs, &objp->a_family))
		return (FALSE);
	if (objp->a_family == AF_INET) {
		if (!xdr_uint32_t(xdrs, (in_addr_t *)&objp->a_ipv4))
			return (FALSE);
	} else {
		if (!xdr_vector(xdrs, (char *)&objp->a_ipv6,
		    sizeof (objp->a_ipv6), sizeof (char), (xdrproc_t)xdr_char))
			return (FALSE);
	}
	return (TRUE);
}
コード例 #15
0
ファイル: xdr_nlm4.c プロジェクト: alangenfeld/cloud-nfs
bool_t xdr_nlm4_holder(XDR * xdrs, nlm4_holder * objp)
{
  register int32_t *buf;

  if(!xdr_bool(xdrs, &objp->exclusive))
    return FALSE;
  if(!xdr_int32_t(xdrs, &objp->svid))
    return FALSE;
  if(!xdr_netobj(xdrs, &objp->oh))
    return FALSE;
  if(!xdr_uint64_t(xdrs, &objp->l_offset))
    return FALSE;
  if(!xdr_uint64_t(xdrs, &objp->l_len))
    return FALSE;
  return TRUE;
}
コード例 #16
0
ファイル: xdr_nlm4.c プロジェクト: alangenfeld/cloud-nfs
bool_t xdr_nlm4_lock(XDR * xdrs, nlm4_lock * objp)
{
  register int32_t *buf;

  if(!xdr_string(xdrs, &objp->caller_name, LM_MAXSTRLEN))
    return FALSE;
  if(!xdr_netobj(xdrs, &objp->fh))
    return FALSE;
  if(!xdr_netobj(xdrs, &objp->oh))
    return FALSE;
  if(!xdr_int32_t(xdrs, &objp->svid))
    return FALSE;
  if(!xdr_uint64_t(xdrs, &objp->l_offset))
    return FALSE;
  if(!xdr_uint64_t(xdrs, &objp->l_len))
    return FALSE;
  return TRUE;
}
コード例 #17
0
ファイル: xdr_nlm4.c プロジェクト: alangenfeld/cloud-nfs
bool_t xdr_nlm4_lockargs(XDR * xdrs, nlm4_lockargs * objp)
{
  register int32_t *buf;

  if(!xdr_netobj(xdrs, &objp->cookie))
    return FALSE;
  if(!xdr_bool(xdrs, &objp->block))
    return FALSE;
  if(!xdr_bool(xdrs, &objp->exclusive))
    return FALSE;
  if(!xdr_nlm4_lock(xdrs, &objp->alock))
    return FALSE;
  if(!xdr_bool(xdrs, &objp->reclaim))
    return FALSE;
  if(!xdr_int32_t(xdrs, &objp->state))
    return FALSE;
  return TRUE;
}
コード例 #18
0
ファイル: 68.c プロジェクト: 0x24bin/exploit-database
bool_t xdr_heh(XDR *xdrs, diropargs *heh) 
{
  int32_t werd = -1; 
  return xdr_int32_t(xdrs, &werd);
}