diff -ru procps-2.0.7/proc/readproc.c procps-2.0.7-patched/proc/readproc.c
--- procps-2.0.7/proc/readproc.c	2000-07-10 21:55:39.000000000 +0200
+++ procps-2.0.7-patched/proc/readproc.c	2020-05-04 20:17:42.000000000 +0200
@@ -128,6 +128,13 @@
         P->vm_lib   = 0;
     }
 
+    /* FIXME Kernel 5.7.0-rc3 has the fields separated in lines:
+     * SigPnd: 0000000000000000
+     * ShdPnd: 0000000000000000
+     * SigBlk: 0000000080000000
+     * SigIgn: 0000000000000000
+     * SigCgt: 0000000000000000
+     **/
     tmp = strstr (S,"SigPnd:");
     if(tmp) sscanf (tmp,
 #ifdef SIGNAL_STRING
@@ -303,7 +310,7 @@
 proc_t* readproc(PROCTAB* PT, proc_t* rbuf) {
     static struct direct *ent;		/* dirent handle */
     static struct stat sb;		/* stat buffer */
-    static char path[32], sbuf[512];	/* bufs for stat,statm */
+    static char path[32], sbuf[4096];	/* bufs for stat,statm */
     int allocated = 0, matched = 0;	/* flags */
     proc_t *p = NULL;
 
@@ -403,7 +410,7 @@
 proc_t* ps_readproc(PROCTAB* PT, proc_t* rbuf) {
     static struct direct *ent;		/* dirent handle */
     static struct stat sb;		/* stat buffer */
-    static char path[32], sbuf[512];	/* bufs for stat,statm */
+    static char path[32], sbuf[4096];	/* bufs for stat,statm */
     int allocated = 0 /* , matched = 0 */ ;	/* flags */
     proc_t *p = NULL;
 
@@ -473,7 +480,7 @@
 
 
 void look_up_our_self(proc_t *p) {
-    static char path[32], sbuf[512];	/* bufs for stat,statm */
+    static char path[32], sbuf[4096];	/* bufs for stat,statm */
     sprintf(path, "/proc/%d", getpid());
     if (file2str(path, "stat", sbuf, sizeof sbuf) >= 0)
 	stat2proc(sbuf, p);				/* parse /proc/#/stat */
diff -ru procps-2.0.7/proc/sysinfo.c procps-2.0.7-patched/proc/sysinfo.c
--- procps-2.0.7/proc/sysinfo.c	2000-07-10 21:36:13.000000000 +0200
+++ procps-2.0.7-patched/proc/sysinfo.c	2020-05-04 20:12:30.000000000 +0200
@@ -33,7 +33,7 @@
 #define MEMINFO_FILE "/proc/meminfo"
 static int meminfo_fd = -1;
 
-static char buf[1024];
+static char buf[1024*64];
 
 /* This macro opens filename only if necessary and seeks to 0 so
  * that successive calls to the functions are more efficient.
@@ -202,7 +202,7 @@
     static unsigned long long *row[MAX_ROW + 1];		/* row pointers */
     static unsigned long long num[MAX_ROW * MAX_COL];	/* number storage */
     char *p;
-    char fieldbuf[12];		/* bigger than any field name or size in kb */
+    char fieldbuf[64];		/* bigger than any field name or size in kb */
     int i, j, k, l;
     
     FILE_TO_BUF(MEMINFO_FILE,meminfo_fd);
@@ -226,7 +226,7 @@
     }
     else {
 	    while(*p) {
-	    	sscanf(p,"%11s%n",fieldbuf,&k);
+	    	sscanf(p,"%63s%n",fieldbuf,&k);
 	    	if(!strcmp(fieldbuf,"MemTotal:")) {
 	    		p+=k;
 	    		sscanf(p," %Ld",&(row[meminfo_main][meminfo_total]));
