void updateName() {
		if (reader == null) {
			throw new UnsupportedOperationException("This ElfSectionHeader does not have a reader");
		}

		ElfSectionHeader[] sections = header.getSections();
		int e_shstrndx = header.e_shstrndx();
		name = null;
		try {
			if (sh_name >= 0 && e_shstrndx > 0 && e_shstrndx < sections.length) {
				// read section name from string table
				if (!sections[e_shstrndx].isInvalidOffset()) {
					long stringTableOffset = sections[e_shstrndx].getOffset();
					long offset = stringTableOffset + sh_name;
					if (offset < reader.length()) {
						name = reader.readUtf8String(stringTableOffset + sh_name);
						if ("".equals(name)) {
							name = null;
						}
					}
				}
			}
		}
		catch (IOException e) {
			// ignore
		}
		if (name == null) {
			name = "NO-NAME";
			for (int i = 0; i < sections.length; ++i) {//find this section's index
				if (sections[i] == this) {
					name = "SECTION" + i;
					break;
				}
			}
		}
	}
An index into the section header string table section, 
giving the location of a null-terminated string which is the name of this section.
@return the index of the section name
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/ElfSectionHeader.java