Bug 55111

Summary: Wrong displaying some users info, chat is not possible
Product: [Retired] Red Hat Linux Reporter: Krzysztof Kosz <krzysztof.kosz>
Component: licqAssignee: Thomas Woerner <twoerner>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: high    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-01-16 15:30:47 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Krzysztof Kosz 2001-10-25 18:40:35 UTC
Description of Problem:
I can't see the status nor chat, nor see the info about some presons. These 
persons are newly registered to icq. Browsing through the licq cvs archive I 
found (i think) the origin of this problem and the solution. The UIN is to big to be 
supported by the licq. Look at:
http://www.geocrawler.com/lists/3/SourceForge/645/0/6789184/

Version-Release number of selected component (if applicable):
Licq 1.0.2-3

How Reproducible:
Every time

Steps to Reproduce:
1. Create new icq account
2. Using another account add the newly created one to your contact list. 

Actual Results:
Only UIN number is displayed (nb. this number is not true)

Expected Results:
The user's status should be displayed. Communication should be possible.

Additional Information:
Licq from the Raw Hide (1.0.3-8) also does not work.

Comment 1 Krzysztof Kosz 2001-10-28 10:58:30 UTC
Proposed patch:

--- ./icqd-udp.cpp	Mon Feb 26 21:13:57 2001
+++ /icqd-udp.cpp	Sun Oct 28 11:42:58 2001
@@ -1650,12 +1650,16 @@
     delete buf;
   }

+#if 0
+  // !!! This causes problems for UINs that are > 0x07FFFFFF !!!
   // Check if uin is backwards, what the fuck is with icq99b?
   if (nUin > 0x07FFFFFF)
   {
     nUin = ((nUin & 0x000000FF) << 24) + ((nUin & 0x0000FF00) << 8) +
            ((nUin & 0x00FF0000) >> 8)  + ((nUin & 0xFF000000) >> 24);
   }
+#endif
+
   // Swap high and low bytes for strange new icq99
   if ((newCommand > 0x00FF) && !(newCommand & ICQ_CMDxSUB_FxMULTIREC))
   {

Comment 2 Krzysztof Kosz 2001-10-28 10:58:46 UTC
Proposed patch:

--- ./icqd-udp.cpp	Mon Feb 26 21:13:57 2001
+++ /icqd-udp.cpp	Sun Oct 28 11:42:58 2001
@@ -1650,12 +1650,16 @@
     delete buf;
   }

+#if 0
+  // !!! This causes problems for UINs that are > 0x07FFFFFF !!!
   // Check if uin is backwards, what the fuck is with icq99b?
   if (nUin > 0x07FFFFFF)
   {
     nUin = ((nUin & 0x000000FF) << 24) + ((nUin & 0x0000FF00) << 8) +
            ((nUin & 0x00FF0000) >> 8)  + ((nUin & 0xFF000000) >> 24);
   }
+#endif
+
   // Swap high and low bytes for strange new icq99
   if ((newCommand > 0x00FF) && !(newCommand & ICQ_CMDxSUB_FxMULTIREC))
   {

Comment 3 Thomas Woerner 2003-01-16 15:30:47 UTC
Fixed in rawhide in rpm licq-1.2.3-2 and later.