[PATCH] selinux: endian notations
This patch adds endian notations to the SELinux code. Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
		
					parent
					
						
							
								782ebb992e
							
						
					
				
			
			
				commit
				
					
						b5bf6c55ed
					
				
			
		
					 5 changed files with 52 additions and 37 deletions
				
			
		| 
						 | 
					@ -490,7 +490,7 @@ out:
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void avc_print_ipv6_addr(struct audit_buffer *ab,
 | 
					static inline void avc_print_ipv6_addr(struct audit_buffer *ab,
 | 
				
			||||||
				       struct in6_addr *addr, u16 port,
 | 
									       struct in6_addr *addr, __be16 port,
 | 
				
			||||||
				       char *name1, char *name2)
 | 
									       char *name1, char *name2)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (!ipv6_addr_any(addr))
 | 
						if (!ipv6_addr_any(addr))
 | 
				
			||||||
| 
						 | 
					@ -501,7 +501,7 @@ static inline void avc_print_ipv6_addr(struct audit_buffer *ab,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void avc_print_ipv4_addr(struct audit_buffer *ab, u32 addr,
 | 
					static inline void avc_print_ipv4_addr(struct audit_buffer *ab, u32 addr,
 | 
				
			||||||
				       u16 port, char *name1, char *name2)
 | 
									       __be16 port, char *name1, char *name2)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (addr)
 | 
						if (addr)
 | 
				
			||||||
		audit_log_format(ab, " %s=%d.%d.%d.%d", name1, NIPQUAD(addr));
 | 
							audit_log_format(ab, " %s=%d.%d.%d.%d", name1, NIPQUAD(addr));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -297,8 +297,10 @@ int avtab_read_item(void *fp, u32 vers, struct avtab *a,
 | 
				
			||||||
				   struct avtab_datum *d, void *p),
 | 
									   struct avtab_datum *d, void *p),
 | 
				
			||||||
		    void *p)
 | 
							    void *p)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u16 buf16[4], enabled;
 | 
						__le16 buf16[4];
 | 
				
			||||||
	u32 buf32[7], items, items2, val;
 | 
						u16 enabled;
 | 
				
			||||||
 | 
						__le32 buf32[7];
 | 
				
			||||||
 | 
						u32 items, items2, val;
 | 
				
			||||||
	struct avtab_key key;
 | 
						struct avtab_key key;
 | 
				
			||||||
	struct avtab_datum datum;
 | 
						struct avtab_datum datum;
 | 
				
			||||||
	int i, rc;
 | 
						int i, rc;
 | 
				
			||||||
| 
						 | 
					@ -403,7 +405,7 @@ static int avtab_insertf(struct avtab *a, struct avtab_key *k,
 | 
				
			||||||
int avtab_read(struct avtab *a, void *fp, u32 vers)
 | 
					int avtab_read(struct avtab *a, void *fp, u32 vers)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[1];
 | 
						__le32 buf[1];
 | 
				
			||||||
	u32 nel, i;
 | 
						u32 nel, i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -216,7 +216,8 @@ int cond_read_bool(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct cond_bool_datum *booldatum;
 | 
						struct cond_bool_datum *booldatum;
 | 
				
			||||||
	u32 buf[3], len;
 | 
						__le32 buf[3];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	booldatum = kmalloc(sizeof(struct cond_bool_datum), GFP_KERNEL);
 | 
						booldatum = kmalloc(sizeof(struct cond_bool_datum), GFP_KERNEL);
 | 
				
			||||||
| 
						 | 
					@ -342,7 +343,8 @@ err:
 | 
				
			||||||
static int cond_read_av_list(struct policydb *p, void *fp, struct cond_av_list **ret_list, struct cond_av_list *other)
 | 
					static int cond_read_av_list(struct policydb *p, void *fp, struct cond_av_list **ret_list, struct cond_av_list *other)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i, rc;
 | 
						int i, rc;
 | 
				
			||||||
	u32 buf[1], len;
 | 
						__le32 buf[1];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
	struct cond_insertf_data data;
 | 
						struct cond_insertf_data data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	*ret_list = NULL;
 | 
						*ret_list = NULL;
 | 
				
			||||||
| 
						 | 
					@ -388,7 +390,8 @@ static int expr_isvalid(struct policydb *p, struct cond_expr *expr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int cond_read_node(struct policydb *p, struct cond_node *node, void *fp)
 | 
					static int cond_read_node(struct policydb *p, struct cond_node *node, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 buf[2], len, i;
 | 
						__le32 buf[2];
 | 
				
			||||||
 | 
						u32 len, i;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	struct cond_expr *expr = NULL, *last = NULL;
 | 
						struct cond_expr *expr = NULL, *last = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -446,7 +449,8 @@ err:
 | 
				
			||||||
int cond_read_list(struct policydb *p, void *fp)
 | 
					int cond_read_list(struct policydb *p, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct cond_node *node, *last = NULL;
 | 
						struct cond_node *node, *last = NULL;
 | 
				
			||||||
	u32 buf[1], i, len;
 | 
						__le32 buf[1];
 | 
				
			||||||
 | 
						u32 i, len;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rc = next_entry(buf, fp, sizeof buf);
 | 
						rc = next_entry(buf, fp, sizeof buf);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -196,8 +196,9 @@ int ebitmap_read(struct ebitmap *e, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	struct ebitmap_node *n, *l;
 | 
						struct ebitmap_node *n, *l;
 | 
				
			||||||
	u32 buf[3], mapsize, count, i;
 | 
						__le32 buf[3];
 | 
				
			||||||
	u64 map;
 | 
						u32 mapsize, count, i;
 | 
				
			||||||
 | 
						__le64 map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ebitmap_init(e);
 | 
						ebitmap_init(e);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -744,7 +744,8 @@ int policydb_context_isvalid(struct policydb *p, struct context *c)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static int mls_read_range_helper(struct mls_range *r, void *fp)
 | 
					static int mls_read_range_helper(struct mls_range *r, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 buf[2], items;
 | 
						__le32 buf[2];
 | 
				
			||||||
 | 
						u32 items;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rc = next_entry(buf, fp, sizeof(u32));
 | 
						rc = next_entry(buf, fp, sizeof(u32));
 | 
				
			||||||
| 
						 | 
					@ -805,7 +806,7 @@ static int context_read_and_validate(struct context *c,
 | 
				
			||||||
				     struct policydb *p,
 | 
									     struct policydb *p,
 | 
				
			||||||
				     void *fp)
 | 
									     void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 buf[3];
 | 
						__le32 buf[3];
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rc = next_entry(buf, fp, sizeof buf);
 | 
						rc = next_entry(buf, fp, sizeof buf);
 | 
				
			||||||
| 
						 | 
					@ -845,7 +846,8 @@ static int perm_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct perm_datum *perdatum;
 | 
						struct perm_datum *perdatum;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[2], len;
 | 
						__le32 buf[2];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	perdatum = kmalloc(sizeof(*perdatum), GFP_KERNEL);
 | 
						perdatum = kmalloc(sizeof(*perdatum), GFP_KERNEL);
 | 
				
			||||||
	if (!perdatum) {
 | 
						if (!perdatum) {
 | 
				
			||||||
| 
						 | 
					@ -885,7 +887,8 @@ static int common_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct common_datum *comdatum;
 | 
						struct common_datum *comdatum;
 | 
				
			||||||
	u32 buf[4], len, nel;
 | 
						__le32 buf[4];
 | 
				
			||||||
 | 
						u32 len, nel;
 | 
				
			||||||
	int i, rc;
 | 
						int i, rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	comdatum = kmalloc(sizeof(*comdatum), GFP_KERNEL);
 | 
						comdatum = kmalloc(sizeof(*comdatum), GFP_KERNEL);
 | 
				
			||||||
| 
						 | 
					@ -939,7 +942,8 @@ static int read_cons_helper(struct constraint_node **nodep, int ncons,
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct constraint_node *c, *lc;
 | 
						struct constraint_node *c, *lc;
 | 
				
			||||||
	struct constraint_expr *e, *le;
 | 
						struct constraint_expr *e, *le;
 | 
				
			||||||
	u32 buf[3], nexpr;
 | 
						__le32 buf[3];
 | 
				
			||||||
 | 
						u32 nexpr;
 | 
				
			||||||
	int rc, i, j, depth;
 | 
						int rc, i, j, depth;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	lc = NULL;
 | 
						lc = NULL;
 | 
				
			||||||
| 
						 | 
					@ -1023,7 +1027,8 @@ static int class_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct class_datum *cladatum;
 | 
						struct class_datum *cladatum;
 | 
				
			||||||
	u32 buf[6], len, len2, ncons, nel;
 | 
						__le32 buf[6];
 | 
				
			||||||
 | 
						u32 len, len2, ncons, nel;
 | 
				
			||||||
	int i, rc;
 | 
						int i, rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cladatum = kmalloc(sizeof(*cladatum), GFP_KERNEL);
 | 
						cladatum = kmalloc(sizeof(*cladatum), GFP_KERNEL);
 | 
				
			||||||
| 
						 | 
					@ -1117,7 +1122,8 @@ static int role_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct role_datum *role;
 | 
						struct role_datum *role;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[2], len;
 | 
						__le32 buf[2];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	role = kmalloc(sizeof(*role), GFP_KERNEL);
 | 
						role = kmalloc(sizeof(*role), GFP_KERNEL);
 | 
				
			||||||
	if (!role) {
 | 
						if (!role) {
 | 
				
			||||||
| 
						 | 
					@ -1177,7 +1183,8 @@ static int type_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct type_datum *typdatum;
 | 
						struct type_datum *typdatum;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[3], len;
 | 
						__le32 buf[3];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	typdatum = kmalloc(sizeof(*typdatum),GFP_KERNEL);
 | 
						typdatum = kmalloc(sizeof(*typdatum),GFP_KERNEL);
 | 
				
			||||||
	if (!typdatum) {
 | 
						if (!typdatum) {
 | 
				
			||||||
| 
						 | 
					@ -1221,7 +1228,7 @@ bad:
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static int mls_read_level(struct mls_level *lp, void *fp)
 | 
					static int mls_read_level(struct mls_level *lp, void *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 buf[1];
 | 
						__le32 buf[1];
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memset(lp, 0, sizeof(*lp));
 | 
						memset(lp, 0, sizeof(*lp));
 | 
				
			||||||
| 
						 | 
					@ -1249,7 +1256,8 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct user_datum *usrdatum;
 | 
						struct user_datum *usrdatum;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[2], len;
 | 
						__le32 buf[2];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	usrdatum = kmalloc(sizeof(*usrdatum), GFP_KERNEL);
 | 
						usrdatum = kmalloc(sizeof(*usrdatum), GFP_KERNEL);
 | 
				
			||||||
	if (!usrdatum) {
 | 
						if (!usrdatum) {
 | 
				
			||||||
| 
						 | 
					@ -1303,7 +1311,8 @@ static int sens_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct level_datum *levdatum;
 | 
						struct level_datum *levdatum;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[2], len;
 | 
						__le32 buf[2];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	levdatum = kmalloc(sizeof(*levdatum), GFP_ATOMIC);
 | 
						levdatum = kmalloc(sizeof(*levdatum), GFP_ATOMIC);
 | 
				
			||||||
	if (!levdatum) {
 | 
						if (!levdatum) {
 | 
				
			||||||
| 
						 | 
					@ -1354,7 +1363,8 @@ static int cat_read(struct policydb *p, struct hashtab *h, void *fp)
 | 
				
			||||||
	char *key = NULL;
 | 
						char *key = NULL;
 | 
				
			||||||
	struct cat_datum *catdatum;
 | 
						struct cat_datum *catdatum;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
	u32 buf[3], len;
 | 
						__le32 buf[3];
 | 
				
			||||||
 | 
						u32 len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	catdatum = kmalloc(sizeof(*catdatum), GFP_ATOMIC);
 | 
						catdatum = kmalloc(sizeof(*catdatum), GFP_ATOMIC);
 | 
				
			||||||
	if (!catdatum) {
 | 
						if (!catdatum) {
 | 
				
			||||||
| 
						 | 
					@ -1417,7 +1427,8 @@ int policydb_read(struct policydb *p, void *fp)
 | 
				
			||||||
	struct ocontext *l, *c, *newc;
 | 
						struct ocontext *l, *c, *newc;
 | 
				
			||||||
	struct genfs *genfs_p, *genfs, *newgenfs;
 | 
						struct genfs *genfs_p, *genfs, *newgenfs;
 | 
				
			||||||
	int i, j, rc;
 | 
						int i, j, rc;
 | 
				
			||||||
	u32 buf[8], len, len2, config, nprim, nel, nel2;
 | 
						__le32 buf[8];
 | 
				
			||||||
 | 
						u32 len, len2, config, nprim, nel, nel2;
 | 
				
			||||||
	char *policydb_str;
 | 
						char *policydb_str;
 | 
				
			||||||
	struct policydb_compat_info *info;
 | 
						struct policydb_compat_info *info;
 | 
				
			||||||
	struct range_trans *rt, *lrt;
 | 
						struct range_trans *rt, *lrt;
 | 
				
			||||||
| 
						 | 
					@ -1433,17 +1444,14 @@ int policydb_read(struct policydb *p, void *fp)
 | 
				
			||||||
	if (rc < 0)
 | 
						if (rc < 0)
 | 
				
			||||||
		goto bad;
 | 
							goto bad;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; i < 2; i++)
 | 
						if (le32_to_cpu(buf[0]) != POLICYDB_MAGIC) {
 | 
				
			||||||
		buf[i] = le32_to_cpu(buf[i]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (buf[0] != POLICYDB_MAGIC) {
 | 
					 | 
				
			||||||
		printk(KERN_ERR "security:  policydb magic number 0x%x does "
 | 
							printk(KERN_ERR "security:  policydb magic number 0x%x does "
 | 
				
			||||||
		       "not match expected magic number 0x%x\n",
 | 
							       "not match expected magic number 0x%x\n",
 | 
				
			||||||
		       buf[0], POLICYDB_MAGIC);
 | 
							       le32_to_cpu(buf[0]), POLICYDB_MAGIC);
 | 
				
			||||||
		goto bad;
 | 
							goto bad;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	len = buf[1];
 | 
						len = le32_to_cpu(buf[1]);
 | 
				
			||||||
	if (len != strlen(POLICYDB_STRING)) {
 | 
						if (len != strlen(POLICYDB_STRING)) {
 | 
				
			||||||
		printk(KERN_ERR "security:  policydb string length %d does not "
 | 
							printk(KERN_ERR "security:  policydb string length %d does not "
 | 
				
			||||||
		       "match expected length %Zu\n",
 | 
							       "match expected length %Zu\n",
 | 
				
			||||||
| 
						 | 
					@ -1478,19 +1486,17 @@ int policydb_read(struct policydb *p, void *fp)
 | 
				
			||||||
	rc = next_entry(buf, fp, sizeof(u32)*4);
 | 
						rc = next_entry(buf, fp, sizeof(u32)*4);
 | 
				
			||||||
	if (rc < 0)
 | 
						if (rc < 0)
 | 
				
			||||||
		goto bad;
 | 
							goto bad;
 | 
				
			||||||
	for (i = 0; i < 4; i++)
 | 
					 | 
				
			||||||
		buf[i] = le32_to_cpu(buf[i]);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	p->policyvers = buf[0];
 | 
						p->policyvers = le32_to_cpu(buf[0]);
 | 
				
			||||||
	if (p->policyvers < POLICYDB_VERSION_MIN ||
 | 
						if (p->policyvers < POLICYDB_VERSION_MIN ||
 | 
				
			||||||
	    p->policyvers > POLICYDB_VERSION_MAX) {
 | 
						    p->policyvers > POLICYDB_VERSION_MAX) {
 | 
				
			||||||
	    	printk(KERN_ERR "security:  policydb version %d does not match "
 | 
						    	printk(KERN_ERR "security:  policydb version %d does not match "
 | 
				
			||||||
	    	       "my version range %d-%d\n",
 | 
						    	       "my version range %d-%d\n",
 | 
				
			||||||
	    	       buf[0], POLICYDB_VERSION_MIN, POLICYDB_VERSION_MAX);
 | 
						    	       le32_to_cpu(buf[0]), POLICYDB_VERSION_MIN, POLICYDB_VERSION_MAX);
 | 
				
			||||||
	    	goto bad;
 | 
						    	goto bad;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((buf[1] & POLICYDB_CONFIG_MLS)) {
 | 
						if ((le32_to_cpu(buf[1]) & POLICYDB_CONFIG_MLS)) {
 | 
				
			||||||
		if (ss_initialized && !selinux_mls_enabled) {
 | 
							if (ss_initialized && !selinux_mls_enabled) {
 | 
				
			||||||
			printk(KERN_ERR "Cannot switch between non-MLS and MLS "
 | 
								printk(KERN_ERR "Cannot switch between non-MLS and MLS "
 | 
				
			||||||
			       "policies\n");
 | 
								       "policies\n");
 | 
				
			||||||
| 
						 | 
					@ -1519,9 +1525,11 @@ int policydb_read(struct policydb *p, void *fp)
 | 
				
			||||||
		goto bad;
 | 
							goto bad;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (buf[2] != info->sym_num || buf[3] != info->ocon_num) {
 | 
						if (le32_to_cpu(buf[2]) != info->sym_num ||
 | 
				
			||||||
 | 
							le32_to_cpu(buf[3]) != info->ocon_num) {
 | 
				
			||||||
		printk(KERN_ERR "security:  policydb table sizes (%d,%d) do "
 | 
							printk(KERN_ERR "security:  policydb table sizes (%d,%d) do "
 | 
				
			||||||
		       "not match mine (%d,%d)\n", buf[2], buf[3],
 | 
							       "not match mine (%d,%d)\n", le32_to_cpu(buf[2]),
 | 
				
			||||||
 | 
								le32_to_cpu(buf[3]),
 | 
				
			||||||
		       info->sym_num, info->ocon_num);
 | 
							       info->sym_num, info->ocon_num);
 | 
				
			||||||
		goto bad;
 | 
							goto bad;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue