--- /usr/bin/pflags.orig	2020-06-29 12:47:49.478282966 -0300
+++ /usr/bin/pflags	2020-06-29 12:57:50.816292731 -0300
@@ -50,14 +50,24 @@
 		pids = list(ps.processes.keys())
 
 	pids.sort()
-	len_comms = [len(ps[pid]["stat"]["comm"]) for pid in pids if pid in ps]
-	max_comm_len = max(len_comms, default=0)
-	del(len_comms)
+	max_comm_len = 0;
+	for pid in pids:
+		if pid in ps:
+			try:
+				comm_len = len(ps[pid]["stat"]["comm"])
+				if max_comm_len < comm_len:
+					max_comm_len = comm_len
+			except:
+				pass
 
 	for pid in pids:
 		if pid not in ps:
 		    continue
-		flags = ps[pid].stat.process_flags()
+		try:
+		    comm = ps[pid].stat["comm"]
+		    flags = ps[pid].stat.process_flags()
+		except:
+                    continue
 		# Remove flags that were superseeded
 		if "PF_THREAD_BOUND" in flags and "PF_NO_SETAFFINITY" in flags:
 			flags.remove("PF_THREAD_BOUND")
@@ -67,7 +77,6 @@
 			flags.remove("PF_SWAPOFF")
 		if "PF_FREEZER_NOSIG" in flags and "PF_SUSPEND_TASK" in flags:
 			flags.remove("PF_FREEZER_NOSIG")
-		comm = ps[pid].stat["comm"]
 		flags.sort()
 		sflags = reduce(lambda i, j: "%s|%s" % (i, j), [a[3:] for a in flags])
 		print("%6d %*s %s" %(pid, max_comm_len, comm, sflags))
