diff --git a/src/help.cpp b/src/help.cpp index 1c880306..3a6abd2a 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -103,6 +103,7 @@ struct PackerNames PackerNames() { names_count = 0; o = NULL; } void add(Packer *p) { + p->assertPacker(); assert(names_count < 32); names[names_count].fname = p->getFullName(o); names[names_count].sname = p->getName(); diff --git a/src/p_com.h b/src/p_com.h index 5468d4ff..adc741a1 100644 --- a/src/p_com.h +++ b/src/p_com.h @@ -42,7 +42,7 @@ public: virtual int getVersion() const { return 13; } virtual int getFormat() const { return UPX_F_DOS_COM; } virtual const char *getName() const { return "dos/com"; } - virtual const char *getFullName(const options_t *o) const { return o->cpu == o->CPU_8086 ? "i086-dos16.com" : "i286-dos16.com"; } + virtual const char *getFullName(const options_t *o) const { return o && o->cpu == o->CPU_8086 ? "i086-dos16.com" : "i286-dos16.com"; } virtual const int *getCompressionMethods(int method, int level) const; virtual const int *getFilters() const; diff --git a/src/p_exe.h b/src/p_exe.h index 6f0d4f1e..8a0acea0 100644 --- a/src/p_exe.h +++ b/src/p_exe.h @@ -42,7 +42,7 @@ public: virtual int getVersion() const { return 13; } virtual int getFormat() const { return UPX_F_DOS_EXE; } virtual const char *getName() const { return "dos/exe"; } - virtual const char *getFullName(const options_t *o) const { return o->cpu == o->CPU_8086 ? "i086-dos16.exe" : "i286-dos16.exe"; } + virtual const char *getFullName(const options_t *o) const { return o && o->cpu == o->CPU_8086 ? "i086-dos16.exe" : "i286-dos16.exe"; } virtual const int *getCompressionMethods(int method, int level) const; virtual const int *getFilters() const; diff --git a/src/p_sys.h b/src/p_sys.h index b3d14f81..9a4d5c71 100644 --- a/src/p_sys.h +++ b/src/p_sys.h @@ -42,7 +42,7 @@ public: virtual int getVersion() const { return 13; } virtual int getFormat() const { return UPX_F_DOS_SYS; } virtual const char *getName() const { return "dos/sys"; } - virtual const char *getFullName(const options_t *o) const { return o->cpu == o->CPU_8086 ? "i086-dos16.sys" : "i286-dos16.sys"; } + virtual const char *getFullName(const options_t *o) const { return o && o->cpu == o->CPU_8086 ? "i086-dos16.sys" : "i286-dos16.sys"; } virtual bool canPack(); diff --git a/src/p_w16ne.h b/src/p_w16ne.h index 4856beb0..8fa267e4 100644 --- a/src/p_w16ne.h +++ b/src/p_w16ne.h @@ -42,7 +42,7 @@ public: virtual int getVersion() const { return 13; } virtual int getFormat() const { return UPX_F_WIN16_NE; } virtual const char *getName() const { return "win16/ne"; } - virtual const char *getFullName(const options_t *o) const { return o->cpu == o->CPU_286 ? "i286-win16.ne" : "i386-win16.ne"; } + virtual const char *getFullName(const options_t *o) const { return o && o->cpu == o->CPU_286 ? "i286-win16.ne" : "i386-win16.ne"; } virtual const int *getCompressionMethods(int method, int level) const; virtual const int *getFilters() const; diff --git a/src/packer.cpp b/src/packer.cpp index 48d8396a..4920ef57 100644 --- a/src/packer.cpp +++ b/src/packer.cpp @@ -67,7 +67,8 @@ void Packer::assertPacker() assert(getVersion() >= 11); assert(getVersion() <= 14); assert(strlen(getName()) <= 13); - assert(strlen(getFullName(opt)) <= 26); // "i386-linux.kernel.bvmlinuz" + assert(strlen(getFullName(opt)) <= 26); // "i386-linux.kernel.bvmlinuz" + assert(strlen(getFullName(NULL)) <= 26); // "i386-linux.kernel.bvmlinuz" if (bele == NULL) fprintf(stderr, "%s\n", getName()); assert(bele != NULL); #if 1 diff --git a/src/ui.cpp b/src/ui.cpp index fc9005a6..aaabde38 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -665,7 +665,7 @@ bool UiPacker::uiFileInfoStart() total_files++; int fg = con_fg(stdout,FG_CYAN); - con_fprintf(stdout,"%s [%s]\n", p->fi->getName(), p->getName()); + con_fprintf(stdout,"%s [%s, %s]\n", p->fi->getName(), p->getFullName(opt), p->getName()); fg = con_fg(stdout,fg); UNUSED(fg); if (p->ph.c_len > 0)