Security Advisories (6)
CVE-2006-4484 (2008-10-01)

Buffer overflow in the LWZReadByte_ function in the GD extension in allows remote attackers to have an unknown impact via a GIF file with input_code_size greater than MAX_LWZ_BITS, which triggers an overflow when initializing the table array.

CVE-2007-4769 (2008-01-09)

The regular expression parser in TCL before 8.4.17, as used in PostgreSQL 8.2 before 8.2.6, 8.1 before 8.1.11, 8.0 before 8.0.15, and 7.4 before 7.4.19, allows remote authenticated users to cause a denial of service (backend crash) via an out-of-bounds backref number.

CVE-2003-0107 (2003-03-07)

Buffer overflow in the gzprintf function in zlib 1.1.4, when zlib is compiled without vsnprintf or when long inputs are truncated using vsnprintf, allows attackers to cause a denial of service or possibly execute arbitrary code.

CVE-2007-4772 (2008-01-09)

The regular expression parser in TCL before 8.4.17, as used in PostgreSQL 8.2 before 8.2.6, 8.1 before 8.1.11, 8.0 before 8.0.15, and 7.4 before 7.4.19, allows context-dependent attackers to cause a denial of service (infinite loop) via a crafted regular expression.

CVE-2007-6067 (2008-01-09)

Algorithmic complexity vulnerability in the regular expression parser in TCL before 8.4.17, as used in PostgreSQL 8.2 before 8.2.6, 8.1 before 8.1.11, 8.0 before 8.0.15, and 7.4 before 7.4.19, allows remote authenticated users to cause a denial of service (memory consumption) via a crafted "complex" regular expression with doubly-nested states.

CVE-2017-12652 (2019-07-10)

libpng before 1.6.32 does not properly check the length of chunks against the user limit.

NAME

Tk_DoWhenIdle, Tk_CancelIdleCall - invoke a procedure when there are no pending events

SYNOPSIS

#include <tk.h>

Tk_DoWhenIdle(proc, clientData)

Tk_CancelIdleCall(proc, clientData)

ARGUMENTS

Tk_IdleProc *proc (in)

Procedure to invoke.

ClientData clientData (in)

Arbitrary one-word value to pass to proc.

DESCRIPTION

Tk_DoWhenIdle arranges for proc to be invoked when the application becomes idle. The application is considered to be idle when Tk_DoOneEvent has been called, it couldn't find any events to handle, and it is about to go to sleep waiting for an event to occur. At this point all pending Tk_DoWhenIdle handlers are invoked. For each call to Tk_DoWhenIdle there will be a single call to proc; after proc is invoked the handler is automatically removed. Tk_DoWhenIdle is only useable in programs that use Tk_DoOneEvent to dispatch events.

Proc should have arguments and result that match the type Tk_IdleProc:

typedef void Tk_IdleProc(ClientData clientData);

The clientData parameter to proc is a copy of the clientData argument given to Tk_DoWhenIdle. Typically, clientData points to a data structure containing application-specific information about what proc should do.

Tk_CancelIdleCall may be used to cancel one or more previous calls to Tk_DoWhenIdle: if there is a Tk_DoWhenIdle handler registered for proc and clientData, then it is removed without invoking it. If there is more than one handler on the idle list that refers to proc and clientData, all of the handlers are removed. If no existing handlers match proc and clientData then nothing happens.

Tk_DoWhenIdle is most useful in situations where (a) a piece of work will have to be done but (b) it's possible that something will happen in the near future that will change what has to be done, or require something different to be done. Tk_DoWhenIdle allows the actual work to be deferred until all pending events have been processed. At this point the exact work to be done will presumably be known and it can be done exactly once.

For example, Tk_DoWhenIdle might be used by an editor to defer display updates until all pending commands have been processed. Without this feature, redundant redisplays might occur in some situations, such as the processing of a command file.

KEYWORDS

callback, defer, handler, idle