Codechef4u is a community for computer professionals,by computer professionals,just like you; who loves sharing and helping each others,Join them
Share your post

Google Chrome 50 stable version

This is our first post on release news and team decided to share some information on latest Google Chrome team release update, hope more users update chrome with latest version that fixes some high level security bugs those exists in previous version.

Google chrome team has announced the release of Google Chrome 50 stable version for Windows, Mac and Linux.

Google chrome team shared some bug fixes description on its blog post and mentioned in post that they will share more information in next post.

Release key features:

What we know about Google 50 already is its list of security-related bug fixes, which the company has announced on its blog.

This update includes 20 security fixes, some of them with short description we listed below

1. High:  Universal XSS in extension bindings.

2. High:  Out-of-bounds write in V8. 

3. Medium:  Out-of-bounds read in Pdfium JPEG2000 decoding.

4. Medium:  Uninitialized memory read in media.

5. Medium:  Use-after-free related to extensions.

6. Medium:  Android downloaded file path restriction bypass.

7. Low:  Address bar spoofing. Credit to Luan Herrera. Potential leak of sensitive information to malicious extensions.

Team mentions many of security bugs are detected using AddressSanitizer, MemorySanitizer, Control Flow Integrity or LibFuzzer.

Reference and more detail:

Bug related more information you can check using bug tracker link

How to update:


UTF - Unified Transformation Format

What is Unicode?

It is consistent encoding, representation and handling of text. Text can be in any language or writing system. For English characters/numbers/symbols use is ASCII standard for numerical representation to characters. ASCII table can be refereed on below link.

Most popular encoding format is UTF-8, where 8 means it uses 8-bit blocks to represent a character. Depending on the character the number of blocks required for representation varies. 1-bit is one memory cell capable of storing 0 or 1. 

Now let’s understand how the encoding is represented. For any characters equal to or below 127 decimal representation (converted to hexadecimal 7F) of character can be represented in 8-bits i.e. one byte. If you checked the ascii table from the link then you can see that there are exactly 127 characters from ASCII which covers all American English character set including numbers/symbols/control characters. This is why the UTF-8 is very popular form of representation as it represent the ASCII in 8 bits. For the characters from other languages it might take more then one block. I know, it is not fair for all the other forms of characters but this is how it is.

UTF-8 is widely used on internet, ever noticed the "content type" in Meta tag, If not go on view page source by right clicking on webpage. The tag will be inside <head> part. Same in xml is in <?xml version="1.0" encoding="utf-8" ?>


Now let’s do the math on how characters are converted or encoded, we will stick to English alphabets and numbers for this demonstration. (x - Means free bits for storing).


8 bit block stream starts with 0 and the character is converted into binary using Unicode code point which is assigned to every character. For e.g. "A" has ascii representation of decimal 65, which if you convert to hex becomes 41 which is nothing but the Unicode code point and then it is converted into binary representation 4 for 100 and 1 for 0001 so the UTF-8 binary is 01000001.




UTF-8 (Hex)

Unicode code Point

UTF-8 (Binary)









0x0000007F (007F)







 0x00000041 (0041)


Now, what if your character is using multi blocks i.e. more than 8 bits.

·         00 to 7F hex (0 to 127): first and only byte of a sequence, starts with 0xxxxxxx where number of free bits are 7.

·         80 to BF hex (128 to 191): continuing byte in a multi-byte sequence

·         C2 to DF hex (194 to 223): first byte of a two-byte sequence, , where 1st byte starts with 110xxxxx and second byte starts with 10xxxxxx where number of free bits are (5+6)=1

·         E0 to EF hex (224 to 239): first byte of a three-byte sequence,  where 1st byte starts with 1110xxxx, second byte starts with 10xxxxxx and 3rd byte starts with 10xxxxxx where number of free bits are (4+6+6)=16

·         F0 to FF hex (240 to 255): first byte of a four-byte sequence, where 1st byte starts with 11110xxx, second byte starts with 10xxxxxx, 3rd byte starts with 10xxxxxx and 4th byte starts with 10xxxxxx where number of free bits are (4+6+6+6)=21



Lastly I would like to share an article of a developer from 2003 who was frustrated with the programs not understanding the UTFs. If you have been through what I explained above then it is sufficient to swim the waters.