* Problem report #132 [2/2]: base/src/emacs/src/process.c (procfs_system_process_attributes); UNINIT
@ 2008-12-03 1:22 Dan Nicolaescu
2008-12-05 7:12 ` Eli Zaretskii
0 siblings, 1 reply; 2+ messages in thread
From: Dan Nicolaescu @ 2008-12-03 1:22 UTC (permalink / raw)
To: emacs-devel
CID: 132
Checker: UNINIT (help)
File: base/src/emacs/src/process.c
Function: procfs_system_process_attributes
Description: Using uninitialized value "q"
Event var_decl: Declared variable "q" without initializer
Also see events: [uninit_use]
7246 char procbuf[1025], *p, *q;
7247 int fd;
7248 ssize_t nread;
7249 const char *cmd;
7250 char *cmdline = NULL;
7251 size_t cmdsize, cmdline_size;
7252 unsigned char c;
7253 int proc_id, ppid, uid, gid, pgrp, sess, tty, tpgid, thcount;
7254 unsigned long long utime, stime, cutime, cstime, start;
7255 long priority, nice, rss;
7256 unsigned long minflt, majflt, cminflt, cmajflt, vsize;
7257 time_t sec;
7258 unsigned usec;
7259 EMACS_TIME tnow, tstart, tboot, telapsed,ttotal;
7260 double pcpu, pmem;
7261 Lisp_Object attrs = Qnil;
7262 Lisp_Object cmd_str, decoded_cmd, tem;
7263 struct gcpro gcpro1, gcpro2;
7264 EMACS_INT uid_eint, gid_eint;
7265
At conditional (1): "pid & 7 != 6" taking true path
At conditional (2): "pid & 7 != 0" taking false path
At conditional (3): "0" taking false path
7266 CHECK_NUMBER_OR_FLOAT (pid);
At conditional (4): "pid & 7 == 6" taking false path
7267 proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid);
7268 sprintf (procfn, "/proc/%lu", proc_id);
At conditional (5): "stat < 0" taking false path
7269 if (stat (procfn, &st) < 0)
7270 return attrs;
7271
7272 GCPRO2 (attrs, decoded_cmd);
7273
7274 /* euid egid */
7275 uid = st.st_uid;
7276 /* Use of EMACS_INT stops GCC whining about limited range of data type. */
7277 uid_eint = uid;
At conditional (6): "uid_eint > 1152921504606846975" taking true path
7278 attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float (uid_eint)), attrs);
7279 BLOCK_INPUT;
7280 pw = getpwuid (uid);
At conditional (7): "interrupt_input_blocked == 0" taking true path
At conditional (8): "interrupt_input_pending != 0" taking true path
At conditional (9): "pending_atimers != 0" taking true path
At conditional (10): "0" taking false path
7281 UNBLOCK_INPUT;
At conditional (11): "pw != 0" taking true path
7282 if (pw)
7283 attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs);
7284
7285 gid = st.st_gid;
7286 gid_eint = gid;
At conditional (12): "gid_eint > 1152921504606846975" taking true path
7287 attrs = Fcons (Fcons (Qegid, make_fixnum_or_float (gid_eint)), attrs);
7288 BLOCK_INPUT;
7289 gr = getgrgid (gid);
At conditional (13): "interrupt_input_blocked == 0" taking true path
At conditional (14): "interrupt_input_pending != 0" taking true path
At conditional (15): "pending_atimers != 0" taking true path
At conditional (16): "0" taking false path
7290 UNBLOCK_INPUT;
At conditional (17): "gr != 0" taking true path
7291 if (gr)
7292 attrs = Fcons (Fcons (Qgroup, build_string (gr->gr_name)), attrs);
7293
7294 strcpy (fn, procfn);
7295 procfn_end = fn + strlen (fn);
7296 strcpy (procfn_end, "/stat");
7297 fd = emacs_open (fn, O_RDONLY, 0);
At conditional (18): "fd >= 0" taking true path
At conditional (19): "nread = emacs_read > 0" taking true path
7298 if (fd >= 0 && (nread = emacs_read (fd, procbuf, sizeof(procbuf) - 1)) > 0)
7299 {
7300 procbuf[nread] = '\0';
7301 p = procbuf;
7302
7303 cmd = NULL;
7304 p = strchr (p, '(');
At conditional (20): "p != 0" taking false path
7305 if (p != NULL)
7306 {
7307 q = strrchr (p + 1, ')');
7308 /* comm */
7309 if (q != NULL)
7310 {
7311 cmd = p + 1;
7312 cmdsize = q - cmd;
7313 }
7314 }
At conditional (21): "cmd == 0" taking true path
7315 if (cmd == NULL)
7316 {
7317 cmd = "???";
7318 cmdsize = 3;
7319 }
7320 /* Command name is encoded in locale-coding-system; decode it. */
7321 cmd_str = make_unibyte_string (cmd, cmdsize);
7322 decoded_cmd = code_convert_string_norecord (cmd_str,
7323 Vlocale_coding_system, 0);
7324 attrs = Fcons (Fcons (Qcomm, decoded_cmd), attrs);
7325
Event uninit_use: Using uninitialized value "q"
Also see events: [var_decl]
7326 if (q)
7327 {
7328 EMACS_INT ppid_eint, pgrp_eint, sess_eint, tpgid_eint, thcount_eint;
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Problem report #132 [2/2]: base/src/emacs/src/process.c (procfs_system_process_attributes); UNINIT
2008-12-03 1:22 Problem report #132 [2/2]: base/src/emacs/src/process.c (procfs_system_process_attributes); UNINIT Dan Nicolaescu
@ 2008-12-05 7:12 ` Eli Zaretskii
0 siblings, 0 replies; 2+ messages in thread
From: Eli Zaretskii @ 2008-12-05 7:12 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: emacs-devel
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Tue, 02 Dec 2008 17:22:25 -0800
>
> CID: 132
> Checker: UNINIT (help)
> File: base/src/emacs/src/process.c
> Function: procfs_system_process_attributes
> Description: Using uninitialized value "q"
Fixed, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-12-05 7:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-03 1:22 Problem report #132 [2/2]: base/src/emacs/src/process.c (procfs_system_process_attributes); UNINIT Dan Nicolaescu
2008-12-05 7:12 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).