On Mon, Jun 02, 2003 at 03:15:57AM +0400, Grigory Batalov wrote: > char temp_filename[256]; 256 - маловато будет > ... > if (!(ptr = getenv ("TMPDIR"))) > fatal_error (2, "TMPDIR"); Не будет работать, если TMPDIR не определён. > snprintf (temp_filename, 256, "%s/linpopup.XXXXXX", ptr); Нет проверки, поместилось ли имя файла в буфер. > file_handle_temp = mkstemp (temp_filename); Нет проверки на код возврата. > write (file_handle_temp, message_text, strlen (message_text)); Запись в непроверенный дескриптор. > close (file_handle_temp); > ... > unlink (temp_filename); Race condition. unlink должен быть сразу после mkstemp, и обязательно до close. Похоже на набор граблей, а не на работоспособный код, верно? -- ldv