display problem when using http protocol
-
- Posts: 66
- Joined: 2010-05-04T10:50:21-07:00
- Authentication code: 8675308
- Location: Russia, Saint-Petersburg
display problem when using http protocol
Please look at this bugreport from our user: https://bugzilla.redhat.com/show_bug.cgi?id=742812
Re: display problem when using http protocol
Can we get a stack trace? We downloaded / installed ImageMagick-6.6.5.10-19.fc15.x86_64.rpm and displayed / converted the 800px-Americanindiansmapcensusbureau.gif image without complaint.
-
- Posts: 66
- Joined: 2010-05-04T10:50:21-07:00
- Authentication code: 8675308
- Location: Russia, Saint-Petersburg
Re: display problem when using http protocol
I request it.
I can't see this error in console, but can reproduce what display exit after 1 or 2 seconds showing this image. Exit status 0, and it do not related http protocol, local copy behave on same way.
I can't see this error in console, but can reproduce what display exit after 1 or 2 seconds showing this image. Exit status 0, and it do not related http protocol, local copy behave on same way.
-
- Posts: 66
- Joined: 2010-05-04T10:50:21-07:00
- Authentication code: 8675308
- Location: Russia, Saint-Petersburg
Re: display problem when using http protocol
Please look at bugzilla - backtrace provided.
Re: display problem when using http protocol
Thanks for the problem report. We can reproduce the problem you posted and have a patch:
Code: Select all
*** magick~/string.c 2011-10-22 10:34:27.463418895 -0400
--- magick/string.c 2011-10-22 10:26:55.329340982 -0400
***************
*** 167,173 ****
if (string_info->length != 0)
{
string_info->datum=(unsigned char *) NULL;
! if (~string_info->length >= MaxTextExtent)
string_info->datum=(unsigned char *) AcquireQuantumMemory(
string_info->length+MaxTextExtent,sizeof(*string_info->datum));
if (string_info->datum == (unsigned char *) NULL)
--- 167,173 ----
if (string_info->length != 0)
{
string_info->datum=(unsigned char *) NULL;
! if (~string_info->length >= (MaxTextExtent-1))
string_info->datum=(unsigned char *) AcquireQuantumMemory(
string_info->length+MaxTextExtent,sizeof(*string_info->datum));
if (string_info->datum == (unsigned char *) NULL)
***************
*** 223,233 ****
if (~length < MaxTextExtent)
ThrowFatalException(ResourceLimitFatalError,"UnableToAcquireString");
*destination=(char *) ResizeQuantumMemory(*destination,length+MaxTextExtent,
! sizeof(*destination));
if (*destination == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToAcquireString");
if (length != 0)
! (void) memcpy(*destination,source,length*sizeof(*destination));
(*destination)[length]='\0';
return(*destination);
}
--- 223,233 ----
if (~length < MaxTextExtent)
ThrowFatalException(ResourceLimitFatalError,"UnableToAcquireString");
*destination=(char *) ResizeQuantumMemory(*destination,length+MaxTextExtent,
! sizeof(**destination));
if (*destination == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToAcquireString");
if (length != 0)
! (void) memcpy(*destination,source,length*sizeof(**destination));
(*destination)[length]='\0';
return(*destination);
}
***************
*** 442,448 ****
if (~length < MaxTextExtent)
ThrowFatalException(ResourceLimitFatalError,"UnableToConcatenateString");
*destination=(char *) ResizeQuantumMemory(*destination,length+MaxTextExtent,
! sizeof(*destination));
if (*destination == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToConcatenateString");
if (source_length != 0)
--- 442,448 ----
if (~length < MaxTextExtent)
ThrowFatalException(ResourceLimitFatalError,"UnableToConcatenateString");
*destination=(char *) ResizeQuantumMemory(*destination,length+MaxTextExtent,
! sizeof(**destination));
if (*destination == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToConcatenateString");
if (source_length != 0)
***************
*** 550,556 ****
}
length=(size_t) offset;
string=(char *) NULL;
! if (~length > MaxTextExtent)
string=(char *) AcquireQuantumMemory(length+MaxTextExtent,sizeof(*string));
if (string == (char *) NULL)
{
--- 550,556 ----
}
length=(size_t) offset;
string=(char *) NULL;
! if (~length >= (MaxTextExtent-1))
string=(char *) AcquireQuantumMemory(length+MaxTextExtent,sizeof(*string));
if (string == (char *) NULL)
{
***************
*** 688,693 ****
--- 688,695 ----
register size_t
n;
+ if (source == (const char *) NULL)
+ return(0);
p=source;
q=destination;
for (n=length; n > 4; n-=4)
***************
*** 872,878 ****
length++;
}
destination=(char *) NULL;
! if (~length >= MaxTextExtent)
destination=(char *) AcquireQuantumMemory(length+MaxTextExtent,
sizeof(*destination));
if (destination == (char *) NULL)
--- 874,880 ----
length++;
}
destination=(char *) NULL;
! if (~length >= (MaxTextExtent-1))
destination=(char *) AcquireQuantumMemory(length+MaxTextExtent,
sizeof(*destination));
if (destination == (char *) NULL)
***************
*** 1816,1822 ****
return((StringInfo *) NULL);
split_info=AcquireStringInfo(offset);
SetStringInfo(split_info,string_info);
! (void) memcpy(string_info->datum,string_info->datum+offset,
string_info->length-offset+MaxTextExtent);
SetStringInfoLength(string_info,string_info->length-offset);
return(split_info);
--- 1818,1824 ----
return((StringInfo *) NULL);
split_info=AcquireStringInfo(offset);
SetStringInfo(split_info,string_info);
! (void) memmove(string_info->datum,string_info->datum+offset,
string_info->length-offset+MaxTextExtent);
SetStringInfoLength(string_info,string_info->length-offset);
return(split_info);
***************
*** 1854,1860 ****
string=(char *) NULL;
length=string_info->length;
! if (~length >= MaxTextExtent)
string=(char *) AcquireQuantumMemory(length+MaxTextExtent,sizeof(*string));
if (string == (char *) NULL)
return((char *) NULL);
--- 1856,1862 ----
string=(char *) NULL;
length=string_info->length;
! if (~length >= (MaxTextExtent-1))
string=(char *) AcquireQuantumMemory(length+MaxTextExtent,sizeof(*string));
if (string == (char *) NULL)
return((char *) NULL);
***************
*** 1913,1918 ****
--- 1915,1922 ----
{
while (isspace((int) ((unsigned char) *p)) != 0)
p++;
+ if (*p == '\0')
+ break;
(*argc)++;
if (*p == '"')
for (p++; (*p != '"') && (*p != '\0'); p++) ;
***************
*** 1943,1950 ****
else
if (*q == '\'')
{
for (q++; (*q != '\'') && (*q != '\0'); q++) ;
- q++;
}
else
while ((isspace((int) ((unsigned char) *q)) == 0) && (*q != '\0'))
--- 1947,1954 ----
else
if (*q == '\'')
{
+ p++;
for (q++; (*q != '\'') && (*q != '\0'); q++) ;
}
else
while ((isspace((int) ((unsigned char) *q)) == 0) && (*q != '\0'))
***************
*** 2175,2181 ****
if ((*q == '\r') || (*q == '\n'))
break;
textlist[i]=(char *) AcquireQuantumMemory((size_t) (q-p)+MaxTextExtent,
! sizeof(*textlist));
if (textlist[i] == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToConvertText");
(void) memcpy(textlist[i],p,(size_t) (q-p));
--- 2179,2185 ----
if ((*q == '\r') || (*q == '\n'))
break;
textlist[i]=(char *) AcquireQuantumMemory((size_t) (q-p)+MaxTextExtent,
! sizeof(**textlist));
if (textlist[i] == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToConvertText");
(void) memcpy(textlist[i],p,(size_t) (q-p));
***************
*** 2208,2214 ****
for (i=0; i < (ssize_t) lines; i++)
{
textlist[i]=(char *) AcquireQuantumMemory(2UL*MaxTextExtent,
! sizeof(*textlist));
if (textlist[i] == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToConvertText");
(void) FormatMagickString(textlist[i],MaxTextExtent,"0x%08lx: ",
--- 2212,2218 ----
for (i=0; i < (ssize_t) lines; i++)
{
textlist[i]=(char *) AcquireQuantumMemory(2UL*MaxTextExtent,
! sizeof(**textlist));
if (textlist[i] == (char *) NULL)
ThrowFatalException(ResourceLimitFatalError,"UnableToConvertText");
(void) FormatMagickString(textlist[i],MaxTextExtent,"0x%08lx: ",
***************
*** 2326,2332 ****
if (q > p)
if ((*q == '\'') || (*q == '"'))
q--;
! (void) memcpy(message,p,(size_t) (q-p+1));
message[q-p+1]='\0';
for (p=message; *p != '\0'; p++)
if (*p == '\n')
--- 2330,2336 ----
if (q > p)
if ((*q == '\'') || (*q == '"'))
q--;
! (void) memmove(message,p,(size_t) (q-p+1));
message[q-p+1]='\0';
for (p=message; *p != '\0'; p++)
if (*p == '\n')
-
- Posts: 66
- Joined: 2010-05-04T10:50:21-07:00
- Authentication code: 8675308
- Location: Russia, Saint-Petersburg
Re: display problem when using http protocol
Thank you very much. I'll hope it will be included in new version. And I'll just buil it.