Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 672480 - dev-util/radare2-3.1.2: Filesize does not match recorded size
Summary: dev-util/radare2-3.1.2: Filesize does not match recorded size
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Sergei Trofimovich (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-04 02:17 UTC by Anton Bolshakov
Modified: 2018-12-04 08:41 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Bolshakov 2018-12-04 02:17:55 UTC
6400K .......... .......... .......... .......... .......... 21.7M
  6450K .......... .......... .......... .......... .......... 21.3M
  6500K ........                                               76.8M=3.1s

2018-12-04 09:22:32 (2.04 MB/s) - ‘/usr/portage/distfiles/radare2-3.1.2.tar.gz’ saved [6664607]

!!! Fetched file: radare2-3.1.2.tar.gz VERIFY FAILED!
!!! Reason: Filesize does not match recorded size
!!! Got:      6664607
!!! Expected: 6664534
Refetching... File renamed to '/usr/portage/distfiles/radare2-3.1.2.tar.gz._checksum_failure_.7mdxfb3k'

!!! Couldn't download 'radare2-3.1.2.tar.gz'. Aborting.
Comment 1 Anton Bolshakov 2018-12-04 02:18:59 UTC
Sergei, could you also share how do you monitor and bump it so fast?
I wonder if you use some kind of software for it.
Comment 2 Sergei Trofimovich (RETIRED) gentoo-dev 2018-12-04 08:07:14 UTC
I'm using RSS feed from github's tag and release updates:
    https://github.com/radare/radare2/tags.atom
    https://github.com/radare/radare2/releases.atom

But I'm bumpings packages manually. I guess tarball changes since last push. Let's see what is new.
Comment 3 Larry the Git Cow gentoo-dev 2018-12-04 08:36:00 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f6900b62d8475d4502c7e1d61c2c73bbe934278f

commit f6900b62d8475d4502c7e1d61c2c73bbe934278f
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2018-12-04 08:27:52 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2018-12-04 08:35:50 +0000

    dev-util/radare2: refetch upstream tarball, bug #672480
    
    Anton reports validation failure as:
    !!! Got:      6664607
    !!! Expected: 6664534
    
    The upstream diff contains a few small diffs.
    
    Reported-by: Anton Bolshakov
    Closes: https://bugs.gentoo.org/672480
    Package-Manager: Portage-2.3.52, Repoman-2.3.12
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 dev-util/radare2/Manifest                                          | 2 +-
 dev-util/radare2/{radare2-3.1.2.ebuild => radare2-3.1.2-r1.ebuild} | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Comment 4 Sergei Trofimovich (RETIRED) gentoo-dev 2018-12-04 08:41:11 UTC
Posting diff here for posterity:

$ diff -uraN radare2-3.1.2.old/ radare2-3.1.2.new/
diff -uraN radare2-3.1.2.old/libr/anal/bb.c radare2-3.1.2.new/libr/anal/bb.c
--- radare2-3.1.2.old/libr/anal/bb.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/anal/bb.c	2018-12-03 22:24:57.000000000 +0000
@@ -264,7 +264,7 @@
 		}
 		last_delta = delta;
 	}
-	return UT64_MAX;
+	return bb->addr + last_delta;
 }
 
 /* return true if an instruction starts at a given address of the given
diff -uraN radare2-3.1.2.old/libr/bin/bin.c radare2-3.1.2.new/libr/bin/bin.c
--- radare2-3.1.2.old/libr/bin/bin.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/bin/bin.c	2018-12-03 22:24:57.000000000 +0000
@@ -1322,8 +1322,7 @@
 	return NULL;
 }
 
-R_IPI RBinClass *r_bin_class_new(RBinFile *binfile, const char *name,
-	const char *super, int view) {
+R_IPI RBinClass *r_bin_class_new(RBinFile *binfile, const char *name, const char *super, int view) {
 	if (!binfile || !binfile->o) {
 		return NULL;
 	}
diff -uraN radare2-3.1.2.old/libr/bin/format/mach0/mach0.c radare2-3.1.2.new/libr/bin/format/mach0/mach0.c
--- radare2-3.1.2.old/libr/bin/format/mach0/mach0.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/bin/format/mach0/mach0.c	2018-12-03 22:24:57.000000000 +0000
@@ -2175,7 +2175,7 @@
 					goto beach;
 				}
 				DO_BIND();
-				addr += (ut64)imm * (ut64)(wordsize + wordsize);
+				addr += (ut64)imm * (ut64)wordsize + wordsize;
 				break;
 			case BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
 				count = ULEB();
@@ -2209,20 +2209,19 @@
 		if (amount < 0) {
 			amount = 0;
 		}
-		free (relocs);
 		if (!(relocs = calloc (amount + 1, sizeof (struct reloc_t)))) {
 			return NULL;
 		}
 		for (j = 0; j < amount; j++) {
 			if (parse_import_ptr (bin, &relocs[i], bin->dysymtab.iundefsym + j)) {
 				relocs[i].ord = j;
-				relocs[i++].last = 0;
+				relocs[i++].last = false;
 			}
 		}
 	}
 beach:
 	if (relocs) {
-		relocs[i].last = 1;
+		relocs[i].last = true;
 	}
 	return relocs;
 }
diff -uraN radare2-3.1.2.old/libr/bin/format/nxo/nxo.c radare2-3.1.2.new/libr/bin/format/nxo/nxo.c
--- radare2-3.1.2.old/libr/bin/format/nxo/nxo.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/bin/format/nxo/nxo.c	2018-12-03 22:24:57.000000000 +0000
@@ -11,9 +11,9 @@
 #include "nxo.h"
 
 ut32 readLE32(RBuffer *buf, int off) {
-	int left = 0;
+	//int left = 0;
 	ut32 num = 0;
-	(void)r_buf_read_at (buf, off, &num, 4);
+	(void)r_buf_read_at (buf, off, (ut8 *)&num, 4);
 	return num;
 	//const ut8 *data = r_buf_get_at (buf, off, &left);
 	//return left > 3? r_read_le32 (data): 0;
diff -uraN radare2-3.1.2.old/libr/bin/obj.c radare2-3.1.2.new/libr/bin/obj.c
--- radare2-3.1.2.old/libr/bin/obj.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/bin/obj.c	2018-12-03 22:24:57.000000000 +0000
@@ -120,7 +120,6 @@
 					}
 				}
 			}
-			r_list_append (classes, c);
 		}
 	}
 	if (r_list_empty (classes)) {
@@ -181,7 +180,7 @@
 		}
 		ut8 *bytes = malloc (sz);
 		if (!bytes) {
-			eprintf ("Cannot allocate %d bytes\n", sz);
+			eprintf ("Cannot allocate %" PFMT64u " bytes\n", sz);
 			return NULL;
 		}
 		r_buf_read_at (binfile->buf, offset, bytes, sz);
diff -uraN radare2-3.1.2.old/libr/core/panels.c radare2-3.1.2.new/libr/core/panels.c
--- radare2-3.1.2.old/libr/core/panels.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/core/panels.c	2018-12-03 22:24:57.000000000 +0000
@@ -282,6 +282,7 @@
 static void insertValue(RCore *core);
 static bool moveToDirection(RPanels *panels, Direction direction);
 static void showHelp(RCore *core, RPanelsMode mode);
+static void createNewPanel(RCore *core, char *name, char *cmd, int caching);
 static RConsCanvas *createNewCanvas(RCore *core, int w, int h);
 
 static void panelPrint(RCore *core, RConsCanvas *can, RPanel *panel, int color) {
@@ -1496,6 +1497,14 @@
 	}
 }
 
+static void createNewPanel(RCore *core, char *name, char *cmd, int caching) {
+	RPanels *panels = core->panels;
+	addPanelFrame (core, panels, name, cmd, caching);
+	changePanelNum (panels, panels->n_panels - 1, 0);
+	r_core_panels_layout (panels);
+	setRefreshAll (panels, false);
+}
+
 static RConsCanvas *createNewCanvas(RCore *core, int w, int h) {
 	RConsCanvas *can = r_cons_canvas_new (w, h);
 	if (!can) {
@@ -2978,36 +2987,15 @@
 		r_core_cmd0 (core, "s+");
 		break;
 	case 'n':
-		{
-			r_cons_enable_mouse (false);
-			char *res = r_cons_input ("New panel with command: ");
-			int caching = r_cons_yesno ('y', "Cache the result? (Y/n)");
-			if (res) {
-				if (*res) {
-					addPanelFrame (core, panels, res, res, caching);
-					changePanelNum (panels, panels->n_panels - 1, 0);
-					r_core_panels_layout (core->panels);
-					setRefreshAll (core->panels, false);
-				}
-				free (res);
-			}
-			r_cons_enable_mouse (true);
-		}
-		break;
 	case 'N':
 		{
 			r_cons_enable_mouse (false);
 			char *res = r_cons_input ("New panel with command: ");
 			int caching = r_cons_yesno ('y', "Cache the result? (Y/n)");
-			if (res) {
-				if (*res) {
-					addPanelFrame (core, panels, res, res, caching);
-					r_core_panels_layout (core->panels);
-					setRefreshAll (core->panels, false);
-					core->panels->panelsMenu->depth = 1;
-				}
-				free (res);
+			if (res && *res) {
+				createNewPanel (core, res, res, caching);
 			}
+			free (res);
 			r_cons_enable_mouse (true);
 		}
 		break;
@@ -3156,7 +3144,7 @@
 		char *cmd = r_cons_input ("Command: ");
 		int caching = r_cons_yesno ('y', "Cache the result? (Y/n)");
 		if (name && *name && cmd && *cmd) {
-			addPanelFrame (core, panels, name, cmd, caching);
+			createNewPanel (core, name, cmd, caching);
 		}
 		free (name);
 		free (cmd);
diff -uraN radare2-3.1.2.old/libr/core/visual.c radare2-3.1.2.new/libr/core/visual.c
--- radare2-3.1.2.old/libr/core/visual.c	2018-12-03 15:42:26.000000000 +0000
+++ radare2-3.1.2.new/libr/core/visual.c	2018-12-03 22:24:57.000000000 +0000
@@ -1066,7 +1066,9 @@
 		RAnalFunction *fun = r_anal_get_fcn_in (core->anal, addr, R_ANAL_FCN_TYPE_NULL);
 		if (fun) {
 			if (xref) { //  function xrefs
-				xrefs = r_anal_fcn_get_xrefs (core->anal, fun);
+				xrefs = r_anal_xrefs_get (core->anal, addr);
+				//XXX xrefs = r_anal_fcn_get_xrefs (core->anal, fun);
+				// this function is buggy so we must get the xrefs of the addr
 			} else { // functon refs
 				xrefs = r_anal_fcn_get_refs (core->anal, fun);
 			}
@@ -1248,8 +1250,8 @@
 		}
 		goto repeat;
 	} else if (ch == 'x' || ch == '<') {
-		xrefsMode = !xrefsMode;
 		xref = true;
+		xrefsMode = !xrefsMode;
 		goto repeat;
 	} else if (ch == 'X' || ch == '>') {
 		xref = false;