Module Name:    src
Committed By:   christos
Date:           Thu Feb 17 19:38:49 UTC 2011

Modified Files:
        src/sys/lib/libsa: loadfile_elf32.c

Log Message:
fix -Wself-assign warning


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/lib/libsa/loadfile_elf32.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libsa/loadfile_elf32.c
diff -u src/sys/lib/libsa/loadfile_elf32.c:1.27 src/sys/lib/libsa/loadfile_elf32.c:1.28
--- src/sys/lib/libsa/loadfile_elf32.c:1.27	Wed Sep 15 20:26:49 2010
+++ src/sys/lib/libsa/loadfile_elf32.c	Thu Feb 17 14:38:48 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: loadfile_elf32.c,v 1.27 2010/09/16 00:26:49 jym Exp $ */
+/* $NetBSD: loadfile_elf32.c,v 1.28 2011/02/17 19:38:48 christos Exp $ */
 
 /*-
  * Copyright (c) 1997, 2008 The NetBSD Foundation, Inc.
@@ -265,254 +265,254 @@
 	int first;
 	Elf_Addr shpp;
 	Elf_Addr minp = ~0, maxp = 0, pos = 0, elfp = 0;
-	u_long offset = marks[MARK_START];
-	ssize_t nr;
-	struct __packed {
-		Elf_Nhdr	nh;
-		uint8_t		name[ELF_NOTE_NETBSD_NAMESZ + 1];
-		uint8_t		desc[ELF_NOTE_NETBSD_DESCSZ];
-	} note;
-	char *shstr = NULL;
-	int boot_load_ctf=1;
-
-	/* some ports dont use the offset */
-	offset = offset;
-
-	internalize_ehdr(elf->e_ident[EI_DATA], elf);
-
-	sz = elf->e_phnum * sizeof(Elf_Phdr);
-	phdr = ALLOC(sz);
-
-	if (lseek(fd, elf->e_phoff, SEEK_SET) == -1)  {
-		WARN(("lseek phdr"));
-		goto freephdr;
-	}
-	nr = read(fd, phdr, sz);
-	if (nr == -1) {
-		WARN(("read program headers"));
-		goto freephdr;
-	}
-	if (nr != sz) {
-		errno = EIO;
-		WARN(("read program headers"));
-		goto freephdr;
-	}
+    u_long offset = marks[MARK_START];
+    ssize_t nr;
+    struct __packed {
+	    Elf_Nhdr	nh;
+	    uint8_t		name[ELF_NOTE_NETBSD_NAMESZ + 1];
+	    uint8_t		desc[ELF_NOTE_NETBSD_DESCSZ];
+    } note;
+    char *shstr = NULL;
+    int boot_load_ctf=1;
+
+    /* some ports dont use the offset */
+    (void)&offset;
+
+    internalize_ehdr(elf->e_ident[EI_DATA], elf);
+
+    sz = elf->e_phnum * sizeof(Elf_Phdr);
+    phdr = ALLOC(sz);
+
+    if (lseek(fd, elf->e_phoff, SEEK_SET) == -1)  {
+	    WARN(("lseek phdr"));
+	    goto freephdr;
+    }
+    nr = read(fd, phdr, sz);
+    if (nr == -1) {
+	    WARN(("read program headers"));
+	    goto freephdr;
+    }
+    if (nr != sz) {
+	    errno = EIO;
+	    WARN(("read program headers"));
+	    goto freephdr;
+    }
 
-	for (first = 1, i = 0; i < elf->e_phnum; i++) {
-		internalize_phdr(elf->e_ident[EI_DATA], &phdr[i]);
+    for (first = 1, i = 0; i < elf->e_phnum; i++) {
+	    internalize_phdr(elf->e_ident[EI_DATA], &phdr[i]);
 
 #ifndef MD_LOADSEG /* Allow processor ABI specific segment loads */
 #define MD_LOADSEG(a) /*CONSTCOND*/0
 #endif
-		if (MD_LOADSEG(&phdr[i]))
-			goto loadseg;
+	    if (MD_LOADSEG(&phdr[i]))
+		    goto loadseg;
 
-		if (phdr[i].p_type != PT_LOAD ||
-		    (phdr[i].p_flags & (PF_W|PF_X)) == 0)
-			continue;
+	    if (phdr[i].p_type != PT_LOAD ||
+		(phdr[i].p_flags & (PF_W|PF_X)) == 0)
+		    continue;
 
 #define IS_TEXT(p)	(p.p_flags & PF_X)
 #define IS_DATA(p)	(p.p_flags & PF_W)
 #define IS_BSS(p)	(p.p_filesz < p.p_memsz)
-		/*
-		 * XXX: Assume first address is lowest
-		 */
-		if ((IS_TEXT(phdr[i]) && (flags & LOAD_TEXT)) ||
-		    (IS_DATA(phdr[i]) && (flags & LOAD_DATA))) {
-
-		loadseg:
-			if (marks[MARK_DATA] == 0 && IS_DATA(phdr[i]))
-				marks[MARK_DATA] = LOADADDR(phdr[i].p_vaddr);
-
-			/* Read in segment. */
-			PROGRESS(("%s%lu", first ? "" : "+",
-			    (u_long)phdr[i].p_filesz));
-
-			if (lseek(fd, phdr[i].p_offset, SEEK_SET) == -1)  {
-				WARN(("lseek text"));
-				goto freephdr;
-			}
-			nr = READ(fd, phdr[i].p_vaddr, phdr[i].p_filesz);
-			if (nr == -1) {
-				WARN(("read text error"));
-				goto freephdr;
-			}
-			if (nr != (ssize_t)phdr[i].p_filesz) {
-				errno = EIO;
-				WARN(("read text"));
-				goto freephdr;
-			}
-			first = 0;
-
-		}
-		if ((IS_TEXT(phdr[i]) && (flags & (LOAD_TEXT|COUNT_TEXT))) ||
-		    (IS_DATA(phdr[i]) && (flags & (LOAD_DATA|COUNT_TEXT)))) {
-			pos = phdr[i].p_vaddr;
-			if (minp > pos)
-				minp = pos;
-			pos += phdr[i].p_filesz;
-			if (maxp < pos)
-				maxp = pos;
-		}
-
-		/* Zero out bss. */
-		if (IS_BSS(phdr[i]) && (flags & LOAD_BSS)) {
-			PROGRESS(("+%lu",
-			    (u_long)(phdr[i].p_memsz - phdr[i].p_filesz)));
-			BZERO((phdr[i].p_vaddr + phdr[i].p_filesz),
-			    phdr[i].p_memsz - phdr[i].p_filesz);
-		}
-		if (IS_BSS(phdr[i]) && (flags & (LOAD_BSS|COUNT_BSS))) {
-			pos += phdr[i].p_memsz - phdr[i].p_filesz;
-			if (maxp < pos)
-				maxp = pos;
-		}
-	}
-	DEALLOC(phdr, sz);
+	    /*
+	     * XXX: Assume first address is lowest
+	     */
+	    if ((IS_TEXT(phdr[i]) && (flags & LOAD_TEXT)) ||
+		(IS_DATA(phdr[i]) && (flags & LOAD_DATA))) {
+
+	    loadseg:
+		    if (marks[MARK_DATA] == 0 && IS_DATA(phdr[i]))
+			    marks[MARK_DATA] = LOADADDR(phdr[i].p_vaddr);
+
+		    /* Read in segment. */
+		    PROGRESS(("%s%lu", first ? "" : "+",
+			(u_long)phdr[i].p_filesz));
+
+		    if (lseek(fd, phdr[i].p_offset, SEEK_SET) == -1)  {
+			    WARN(("lseek text"));
+			    goto freephdr;
+		    }
+		    nr = READ(fd, phdr[i].p_vaddr, phdr[i].p_filesz);
+		    if (nr == -1) {
+			    WARN(("read text error"));
+			    goto freephdr;
+		    }
+		    if (nr != (ssize_t)phdr[i].p_filesz) {
+			    errno = EIO;
+			    WARN(("read text"));
+			    goto freephdr;
+		    }
+		    first = 0;
+
+	    }
+	    if ((IS_TEXT(phdr[i]) && (flags & (LOAD_TEXT|COUNT_TEXT))) ||
+		(IS_DATA(phdr[i]) && (flags & (LOAD_DATA|COUNT_TEXT)))) {
+		    pos = phdr[i].p_vaddr;
+		    if (minp > pos)
+			    minp = pos;
+		    pos += phdr[i].p_filesz;
+		    if (maxp < pos)
+			    maxp = pos;
+	    }
+
+	    /* Zero out bss. */
+	    if (IS_BSS(phdr[i]) && (flags & LOAD_BSS)) {
+		    PROGRESS(("+%lu",
+			(u_long)(phdr[i].p_memsz - phdr[i].p_filesz)));
+		    BZERO((phdr[i].p_vaddr + phdr[i].p_filesz),
+			phdr[i].p_memsz - phdr[i].p_filesz);
+	    }
+	    if (IS_BSS(phdr[i]) && (flags & (LOAD_BSS|COUNT_BSS))) {
+		    pos += phdr[i].p_memsz - phdr[i].p_filesz;
+		    if (maxp < pos)
+			    maxp = pos;
+	    }
+    }
+    DEALLOC(phdr, sz);
+
+    /*
+     * Copy the ELF and section headers.
+     */
+    maxp = roundup(maxp, ELFROUND);
+    if (flags & (LOAD_HDR|COUNT_HDR)) {
+	    elfp = maxp;
+	    maxp += sizeof(Elf_Ehdr);
+    }
+
+    if (flags & (LOAD_SYM|COUNT_SYM)) {
+	    if (lseek(fd, elf->e_shoff, SEEK_SET) == -1)  {
+		    WARN(("lseek section headers"));
+		    return 1;
+	    }
+	    sz = elf->e_shnum * sizeof(Elf_Shdr);
+
+	    shp = ALLOC(sz);
+
+	    nr = read(fd, shp, sz);
+	    if (nr == -1) {
+		    WARN(("read section headers"));
+		    goto freeshp;
+	    }
+	    if (nr != sz) {
+		    errno = EIO;
+		    WARN(("read section headers"));
+		    goto freeshp;
+	    }
 
-	/*
-	 * Copy the ELF and section headers.
-	 */
-	maxp = roundup(maxp, ELFROUND);
-	if (flags & (LOAD_HDR|COUNT_HDR)) {
-		elfp = maxp;
-		maxp += sizeof(Elf_Ehdr);
-	}
-
-	if (flags & (LOAD_SYM|COUNT_SYM)) {
-		if (lseek(fd, elf->e_shoff, SEEK_SET) == -1)  {
-			WARN(("lseek section headers"));
-			return 1;
-		}
-		sz = elf->e_shnum * sizeof(Elf_Shdr);
-
-		shp = ALLOC(sz);
-
-		nr = read(fd, shp, sz);
-		if (nr == -1) {
-			WARN(("read section headers"));
-			goto freeshp;
-		}
-		if (nr != sz) {
-			errno = EIO;
-			WARN(("read section headers"));
-			goto freeshp;
-		}
-
-		shpp = maxp;
-		maxp += roundup(sz, ELFROUND);
+	    shpp = maxp;
+	    maxp += roundup(sz, ELFROUND);
 
 #ifndef _STANDALONE
-		/* Internalize the section headers. */
-		for (i = 0; i < elf->e_shnum; i++)
-			internalize_shdr(elf->e_ident[EI_DATA], &shp[i]);
+	    /* Internalize the section headers. */
+	    for (i = 0; i < elf->e_shnum; i++)
+		    internalize_shdr(elf->e_ident[EI_DATA], &shp[i]);
 #endif /* ! _STANDALONE */
 
-		/*
-		 * First load the section names section.
-		 */
-		if (boot_load_ctf && (elf->e_shstrndx != 0)) {
-			if (flags & LOAD_SYM) {
-				if (lseek(fd, shp[elf->e_shstrndx].sh_offset,
-				    SEEK_SET) == -1) {
-					WARN(("lseek symbols"));
-					goto freeshp;
-				}
-				nr = READ(fd, maxp,
-				    shp[elf->e_shstrndx].sh_size);
-				if (nr == -1) {
-					WARN(("read symbols"));
-					goto freeshp;
-				}
-				if (nr !=
-				    (ssize_t)shp[elf->e_shstrndx].sh_size) {
-					errno = EIO;
-					WARN(("read symbols"));
-					goto freeshp;
-				}
-
-				shstr = ALLOC(shp[elf->e_shstrndx].sh_size);
-				if (lseek(fd, shp[elf->e_shstrndx].sh_offset,
-				    SEEK_SET) == -1) {
-					WARN(("lseek symbols"));
-					goto freeshp;
-				}
-				nr = read(fd, shstr,
-				    shp[elf->e_shstrndx].sh_size);
-				if (nr == -1) {
-					WARN(("read symbols"));
-					goto freeshp;
-				}
-			}
-			shp[elf->e_shstrndx].sh_offset = maxp - elfp;
-			maxp += roundup(shp[elf->e_shstrndx].sh_size, ELFROUND);
-		}
-
-		/*
-		 * Now load the symbol sections themselves.  Make sure
-		 * the sections are aligned. Don't bother with any
-		 * string table that isn't referenced by a symbol
-		 * table.
-		 */
-		for (first = 1, i = 0; i < elf->e_shnum; i++) {
-		    	if (i == elf->e_shstrndx) {
-			    /* already loaded this section */
-			    continue;
-			}
-			switch (shp[i].sh_type) {
-			case SHT_PROGBITS:
-			    	if (boot_load_ctf && shstr) {
-					/* got a CTF section? */
-					if (strncmp(".SUNW_ctf",
-						    &shstr[shp[i].sh_name],
-						    10) == 0) {
-					    	goto havesym;
-					}
-				}
-
-				/* Not loading this, so zero out the offset. */
-				shp[i].sh_offset = 0;
-			    	break;
-			case SHT_STRTAB:
-				for (j = 0; j < elf->e_shnum; j++)
-					if (shp[j].sh_type == SHT_SYMTAB &&
-					    shp[j].sh_link == (unsigned int)i)
-						goto havesym;
-				/* FALLTHROUGH */
-			default:
-				/* Not loading this, so zero out the offset. */
-				shp[i].sh_offset = 0;
-				break;
-			havesym:
-			case SHT_SYMTAB:
-				if (flags & LOAD_SYM) {
-					PROGRESS(("%s%ld", first ? " [" : "+",
-					    (u_long)shp[i].sh_size));
-					if (lseek(fd, shp[i].sh_offset,
-					    SEEK_SET) == -1) {
-						WARN(("lseek symbols"));
-						goto freeshp;
-					}
-					nr = READ(fd, maxp, shp[i].sh_size);
-					if (nr == -1) {
-						WARN(("read symbols"));
-						goto freeshp;
-					}
-					if (nr != (ssize_t)shp[i].sh_size) {
-						errno = EIO;
-						WARN(("read symbols"));
-						goto freeshp;
-					}
-				}
-				shp[i].sh_offset = maxp - elfp;
-				maxp += roundup(shp[i].sh_size, ELFROUND);
-				first = 0;
-				break;
-			case SHT_NOTE:
-				if ((flags & LOAD_NOTE) == 0)
-					break;
-				if (shp[i].sh_size < sizeof(note)) {
-					shp[i].sh_offset = 0;
+	    /*
+	     * First load the section names section.
+	     */
+	    if (boot_load_ctf && (elf->e_shstrndx != 0)) {
+		    if (flags & LOAD_SYM) {
+			    if (lseek(fd, shp[elf->e_shstrndx].sh_offset,
+				SEEK_SET) == -1) {
+				    WARN(("lseek symbols"));
+				    goto freeshp;
+			    }
+			    nr = READ(fd, maxp,
+				shp[elf->e_shstrndx].sh_size);
+			    if (nr == -1) {
+				    WARN(("read symbols"));
+				    goto freeshp;
+			    }
+			    if (nr !=
+				(ssize_t)shp[elf->e_shstrndx].sh_size) {
+				    errno = EIO;
+				    WARN(("read symbols"));
+				    goto freeshp;
+			    }
+
+			    shstr = ALLOC(shp[elf->e_shstrndx].sh_size);
+			    if (lseek(fd, shp[elf->e_shstrndx].sh_offset,
+				SEEK_SET) == -1) {
+				    WARN(("lseek symbols"));
+				    goto freeshp;
+			    }
+			    nr = read(fd, shstr,
+				shp[elf->e_shstrndx].sh_size);
+			    if (nr == -1) {
+				    WARN(("read symbols"));
+				    goto freeshp;
+			    }
+		    }
+		    shp[elf->e_shstrndx].sh_offset = maxp - elfp;
+		    maxp += roundup(shp[elf->e_shstrndx].sh_size, ELFROUND);
+	    }
+
+	    /*
+	     * Now load the symbol sections themselves.  Make sure
+	     * the sections are aligned. Don't bother with any
+	     * string table that isn't referenced by a symbol
+	     * table.
+	     */
+	    for (first = 1, i = 0; i < elf->e_shnum; i++) {
+		    if (i == elf->e_shstrndx) {
+			/* already loaded this section */
+			continue;
+		    }
+		    switch (shp[i].sh_type) {
+		    case SHT_PROGBITS:
+			    if (boot_load_ctf && shstr) {
+				    /* got a CTF section? */
+				    if (strncmp(".SUNW_ctf",
+						&shstr[shp[i].sh_name],
+						10) == 0) {
+					    goto havesym;
+				    }
+			    }
+
+			    /* Not loading this, so zero out the offset. */
+			    shp[i].sh_offset = 0;
+			    break;
+		    case SHT_STRTAB:
+			    for (j = 0; j < elf->e_shnum; j++)
+				    if (shp[j].sh_type == SHT_SYMTAB &&
+					shp[j].sh_link == (unsigned int)i)
+					    goto havesym;
+			    /* FALLTHROUGH */
+		    default:
+			    /* Not loading this, so zero out the offset. */
+			    shp[i].sh_offset = 0;
+			    break;
+		    havesym:
+		    case SHT_SYMTAB:
+			    if (flags & LOAD_SYM) {
+				    PROGRESS(("%s%ld", first ? " [" : "+",
+					(u_long)shp[i].sh_size));
+				    if (lseek(fd, shp[i].sh_offset,
+					SEEK_SET) == -1) {
+					    WARN(("lseek symbols"));
+					    goto freeshp;
+				    }
+				    nr = READ(fd, maxp, shp[i].sh_size);
+				    if (nr == -1) {
+					    WARN(("read symbols"));
+					    goto freeshp;
+				    }
+				    if (nr != (ssize_t)shp[i].sh_size) {
+					    errno = EIO;
+					    WARN(("read symbols"));
+					    goto freeshp;
+				    }
+			    }
+			    shp[i].sh_offset = maxp - elfp;
+			    maxp += roundup(shp[i].sh_size, ELFROUND);
+			    first = 0;
+			    break;
+		    case SHT_NOTE:
+			    if ((flags & LOAD_NOTE) == 0)
+				    break;
+			    if (shp[i].sh_size < sizeof(note)) {
+				    shp[i].sh_offset = 0;
 					break;
 				}
 				if (lseek(fd, shp[i].sh_offset, SEEK_SET)

Reply via email to